Sclera blood vessel enhancement on the UBIRIS database

2 views (last 30 days)
Hi!
I'm trying to do sclera blood vessel enhancement on the UBIRIS color database having images of 600x800 pixels and I got stuck. I did sclera detection and achieved a pretty reasonable result (fig. 1), but when I try to do blood vessel enhancement all I get on the edge detected image are the boundary segments of the sclera and not the blood vessels inside it (fig. 2).
My first try was with a bank of Gabor filters according to this article: https://scholarworks.iupui.edu/bitstream/handle/1805/2096/Thesis_OneDoc_Thomas_FinalETD.pdf (page 61 in the PDF)
Then I tried with Frangi filters as some post on this forum says that they also had the problem with a bank of Gabor filters, but Frangi filters were working for them. Well, not for me.
Does anyone have an idea in what direction to go in order to have a well enhanced picture? For the article I posted I tried the following code:
I = rgb2gray(segmentedImage);
gaborArray = gabor([3,4,5],[0,90,180,270]); %maybe 0,90,180,270 or 0,45,90,135
[gaborMag, gaborPhase] = imgaborfilt(I,gaborArray);
f = zeros(size(I,1),size(I,2));
for i = 1:size(I,1)
for j = 1:size(I,2)
for k = 1:12
f(i,j) = f(i,j) + gaborMag(i,j,k).^2;
end
f(i,j) = sqrt(f(i,j));
end
end
maxh = max(f(:));
for i = 1:size(I,1)
for j = 1:size(I,2)
f(i,j) = f(i,j)/maxh;
end
end
Am I not using correctly the orientations? Or should I combined the results of the 12 filters in a different way? The final normalization by dividing with the max value I'm doing because of the fact that if I don't do that I get a full white region instead of the edges of the segmented region.
Figure 1, sclera detection result:
Figure 2, result of bank of Gabor filters applied:

Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!