Retinal vessel analysis with Optical coherent tomography angiography



I am interested in making a better way to contrast the retinal capillary structure around the fovea as Optical coherent tomography angiography shows it.
Actually I am trying to improve the capillary structure and eliminate the noisy background before to begin the process of vascular analysis.
So, I open this thread asking the best way to improve the image. Every way I tried erase some of the capillaries with a weak signal so I continue looking for the best.
I tried “Image…Enhance Contrast” with 25% of pixel saturation without Normalize or Equalize histogram.



It’s difficult for us to say what is best to do without seeing an image. Would you be able to either:

  1. attach an original image file here directly on this forum thread?


  1. share an original image file via a link (using something like Dropbox, etc.)?

This way - we can have a better idea of your image quality, etc. And if you can describe in a bit more detail the workflow you wish to carry out (subsequent measurements, etc) - perhaps we can advise you there as well?



[Normal OCTA 3000x3000 µm 464x464 pix]Normal Macula 464x464 pix 3000x3000 µm

This is an example of a normal Optica Coherent Tomography angiography.
Thank you very much for replying to my post. The workflow I do is the following:

  • I prepare the image: I convert to 8 bit and apply Threshold with several parameters. Some allow to choose with more specificity the capillaries and others choose with greater specificity the avascular zones.
  • I calculate the percentage of vascular area dividing the white pixels between the total of pixels per area and I report them by ROI based on the template ETDRS of the macula.

Another way to prepare the image that has been more specific is using the WEKA segmentation Trainable and I am more satisfied with its performance.
I have functional macros for both approaches. Although the WEKA approach seems to me more accurate, I can not avoid that when calling the classification model from the macro, it does not analyze the loaded image but an image that has been used to train the classification.


Sorry for the delay @valbayeros… I was away on holiday for the past few weeks. But I’m back now… I’m trying to take a look at your image and how you do your analysis and what exactly you wish to measure and how. It’s still not clear to me exactly what you need. From your first post - it seems removing background/noise was the main issue:

Then how exactly do you do your vascular analysis?

From your second post…

I simply need a bit more detail and less ‘jargon’. What exact parameters are you setting for your threshold? Too - I have no idea what “based on the template ETDRS of the macula” means. Also - I do not know the retina very well - so what do you consider ‘capillaries’ and what is ‘avascular zones’???

For the Weka issue - there is a great macro example to apply classification models to images within a folder using a great Beanshell script example. That is a great place to get started - just adapt it as you need.