Projects > Retinal Vessel Centerline Extraction > Vessel Tracing Executable  

Download Command-Line Executable

This executable will run Likelihood Ratio Vesselness (LRV) tracing to extract vessel centerlines. It will also extract landmarks (vessel branching and cross over points) which are repeatable features that could be used for registration or tracking.

08/11/2007: Updated downloads include landmark extraction (vessel branching and crossover points).
Platform Training Data Used
Windows (08/11/2007) STARE and DRIVE* STARE DRIVE
FreeBSD (08/11/2007 static build on FreeBSD 6.2) STARE and DRIVE* STARE DRIVE
Linux (08/11/2007 static build on kernel 2.6) STARE and DRIVE* STARE DRIVE
Mac OS X 10.3.9 (7/15/2008) STARE and DRIVE* STARE DRIVE
* Training using STARE data set and DRIVE data set (with manual segmentations by observer 1). Use this version for best results.
Unzipping Note: The MS Windows XP ``Compressed (zipped) folders'' might not be compatible with other zip archives. The files were zipped with Winzip 12.0 and it was possible to unzip them with ``Compressed (zipped) folders''. Please let me know if you have any problems.
Update 8/23/2009: There seem to have been an occasional problem with the downloads. This has been fixed.


After running the vessel tracer without any arguments (or with ``-?'' argument), usage information is printed as follows:

Usage: vessel_tracer.exe [ string] [ string] [ float] [-s string] [-d string]

string Image file to process ['']
string Tracer [parallel] edge, [matched] ['']
float Sensitivity of the tracer [0]
Switch Type Help [default value]
-s string Suffix for the trace result ['']
-d string Directory where to save result images ['']
-? bool Print this message


  • The first mandatory argument specifies retinal image file in JPEG, PNG, BMP, or TIFF format.
  • The second mandatory argument specifies method to use for tracing. Two methods are available: Parallel edge tracing as proposed in [Can, ITBM 1999] and LRV based tracing as proposed in [Sofka, TMI 2006]. Enter string ``parallel'' or ``matched'' (without the quotes).
  • Sensitivity of the tracer specifies how aggressive the tracing is. For LRV. this is a threshold on the likelihood ratio and 1.0 - 2.0 is a good value. For parallel edge tracing the parameter specifies image contrast sensitivity level in a local window and value 2.5 - 3.5 gives best results.
  • Option -s specifies a suffix added to the image image to write image with vessel traces overlayed on the top, image of binary traces, and a text file with trace results.
  • Option -d specifies where to save the results (default is the current directory).

This executable can be used for non-commercial purposes only.


Results include vessel centerlines and landmarks (vessel branching and crossover points). Three files are written for each run: 1) Vessel traces and landmarks overlayed on the original image, 2) Binary image of vessel traces, and 3) Test file with vessel tracing and landmark extraction results in the following format (comments on the right):

trace_points = { // beginning of the first trace
vec_num = N // number of trace pts. in the first trace
vec_element_0 = { // beginning of first trace pt.
prrepl_trace_point: location = x0 y0 // location of the trace pt.
direction = n0 m0 // vessel orientation vector at the trace pt.
width = w0 // vessel width at the trace pt. (scale for LRV)
strength = s0 // vesselness strength of the trace pt.
... // continue output all N trace pt. of the first trace
vec_element_N-1 = { // beginning of the last trace pt. of the first trace
prrepl_trace_point: location = x1 y1
direction = n1 m1
width = w1
strength = s1
trace_points = { // output next trace
landmarks = { // beginning of the landmark listing
vec_num = M // number of landmarks
vec_element_0 = { // beginning of first landmark
prrepl_landmark: group id = -1 // internal use, ignore this field
radius = r0 // landmark radius (median width of its vessels)
location = x0 y0 // location of the landmark
... // continue output all M landmarks
vec_element_N-1 = { // beginning of the last landmark
prrepl_landmark: group id = -1
radius = r1
location = x1 y1

Publications and Further Reading

When you publish results using the executable, please acknowledge the authors by citing the following paper:

Retinal Vessel Centerline Extraction Using Multiscale Matched Filters, Confidence and Edge Measures
Michal Sofka and Charles V. Stewart
IEEE Transactions on Medical Imaging, vol. 25, no. 12, pp. 1531-1546, Dec. 2006.
[pdf with erratum] [bibtex]

Back to Retinal Vessel Centerline Extraction page.

For questions and comments contact Michal Sofka at:


Copyright 2017 Michal Sofka