It's going to depend a great deal on the type of data that you're sourcing from. If you're using segmented blood vessels from an EM stack, you'll get much higher accuracy than if you're relying on a series of fluorescently imaged transverse sections.
What does your source data look like? How is it acquired? How are your segmentations obtained, and what tools are you using?
The questions above are pretty fair. The description of the data is way too loose to be sure what the optimal solution will be. Still, my experience is that often second order gaussian filters are fair enough for segmenting ridges. Easy, fast, clean and configurable. Sure it's going to demand pre- or post-processing depending on the contamination of the image, etc. Check specially the coherence-enhancing AD by Weickert.
In any case, there's a bunch of literature for ridge detection specially applied to retinal vessels, my faves probably being those by Staal et al.
Here is a link to a webinar where (at 13 minutes) retinal blood vessels are analyzed for their tortuousity. http://www.mathworks.com/videos/medical-image-processing-with-matlab-81890.html
Here is another link to a discussion that might be helpful: http://www.mathworks.com/matlabcentral/answers/105145-how-can-i-detect-blood-vessels-in-retinal-image