New features

A project log for Assistance System for Vein Detection

Using NIR (near infrared) Illumination and real-time image processing, we can make the veins more visible!

MyrijamMyrijam 10/20/2017 at 12:550 Comments

Researching how to further improve our Venenfinder, we came across a filter that is used for detecting and isolating vessel-like structures (branches of trees; blood vessels). It is used to isolate the filigree structures of retinal blood vessels by looking for continuous edges  – the frangi filter.

It is named after the Alejandro F. Frangi who developed this multi-stage filter together with collegues for vessel identification in 1998.

Luckily there is a Python library for it 😊 – and it is part of the scikit-image processing libraries, but you have to compile from the sources since the Frangi filter itself was introduced in version 0.13x up and 0.12x is the latest you can get via apt-get install.

As explained in the previous post, we simply could not get this filter to install/compile in the virtual environments, so we went for a clean install of Raspian Stretch and OpenCV 3.3 without any virtual environments to get the desired image processing libraries.

We opted for the latest, the dev 0.14 version. As describes in the documentation , you need to run the following commands to install dependencies, get the source code and compile it:

sudo apt-get install python-matplotlib python-numpy python-pil python-scipy
sudo apt-get install build-essential cython
git clone
pip install -e 

If everything is working fine, you can test it in Python:


Then try to import it and get the version number:

>>> import skimage
>>> skimage.__version__

and your Pi should return:


Then we tried the new filter with a simple static image, some leaflets and … it did not work ☹

We always got a black image containing the frangi filter results, no matter what.