Clear Filters
Clear Filters

How do I more accurately measure retinal fundus vessel movement in infrared images?

1 view (last 30 days)
Hi,
I have been working on a problem for some time that involves quantifying the displacement of retinal vessels in infrared fundus images. Specifically, given a before and after image, I would like to plot, with as much granularity as possible, a vector map of before-after movements superimposed onto the "before" image (example shown below).
Before Picture with Vector Map Superimposed:
After Picture:
My algorithm currently:
(1) Registers both images (done manually)
(2) Segments the vessels (example below is of the "before" picture segmented)
(2) Tiles both images (a 6 x 6 subgrid for each image, for example)
(3) For each subgrid, measures the centroid (using regionprops Centroid of the largest connected component, which I am assuming is the largest vein in the tile)
(4) Plots the before and after centroid coordinates using quiver.
I would like to (significantly) improve this method. Specifically, is there some way I can:
(1) Isolate only the thickest few veins. For example, in the segmentation above, the clutter in the middle is unnecessary; I can do with only the couple of veins on top and bottom. I have tried the branch trimming here: https://www.mathworks.com/matlabcentral/answers/351171-retinal-fundus-image-branch-issue but it did not work even after adjusting the trimming threshold.
(2) Avoid a tiling mechanism altogether, and instead identify which vein is which and plot arrows only on the veins themselves. That is, instead of a symmetric 6 x 6 grid, I would have several arrows on the veins that tell me where that portion has distorted/moved, and none in areas where there is little movement/no veins.
Thank you very much in advance.

Answers (0)

Products


Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!