Vess(el) eval(uation) is a small GUI application to evaluate the muscularization of pulmonary vessels.
VessEval should run on any normal desktop computer.
VessEval requires Python 3.10 or newer. It was tested on Linux (Ubuntu 22.04) and Windows (10 & 11).
See requirements.txt. Vesseval mainly depends on the image processing libraries OpenCV and Pillow.
Currently VessEval can only be installed from Github:
git clone https://github.com/pleminoq/vesseval
pip install -r requirement.txt`
Notes for my colleagues using Windows in a restrictive environment:
- Install Git
- Configure git:
git config --global http.sslBackend schannel
- Install Python
- Install requirements:
pip install -r requirements.txt --verbose --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org
python -m vesseval
vesseval_demo.webm
The image seen in the demo is provided with VessEval. It can be opened from demo_data/example_image.tif.
To evaluate the muscularization of a pulmonary vessel, a rough outline must first be drawn. In VessEval this is done by creating a bounding box. The bounding box can then be refined:
- The vertices can be moved.
- Additional vertices can be added by double-clicking anywhere on the outline.
- Vertices can be removed by right-clicking. You can also erase parts of an image. This can be useful to eliminate things inside a vessel that prevent automatic evaluation.
Afterwards, you can either select Process Contour from the Tools menu or press the Enter key. This opens a window that allows preprocessing of the selected image regions. Thresholds can be modified and open/close operations can be enabled and configured.
After clicking Process, VessEval will evaluate the vessel. This step will detect and draw an inner contour (blue) and an outer contour (red) for the pulmonary cells (green) and the muscle cells (red), respectively. These contours can be modified similar to the bounding box that outlines the vessel (see above). The evaluated parameters can be copied to a single row of an Excel spreadsheet.
After a vessel has been roughly outlined, this part of the image is cut out.
After this part of the image has maunally been preprocessed (thresholding, opening, closing), Vesseval shoots
rays from its center in angle steps of 6°.
Each ray is checked for intersections with green pixels (vascular cells) or red pixels (muscle cells).
The innermost and outermost intersections with all rays form an inner and and outer contour and allow the calculation of vessel statistics.