【发布时间】:2016-05-16 19:11:49
【问题描述】:
在对 UBIRIS 眼睛数据库中的 600x800 图像的彩色图像进行巩膜识别后,我正在尝试增强巩膜血管。我的问题是,在我尝试按照关于这个确切问题的这篇论文进行操作后,我的结果与论文中的结果不匹配,增强和阈值处理没有给出必要的结果,所以我无法继续开发我的巩膜匹配算法。
这是我尝试使用的参考论文:https://scholarworks.iupui.edu/bitstream/handle/1805/2096/Thesis_OneDoc_Thomas_FinalETD.pdf
您将在 PDF 的第 61 和 62 页上找到不适合我的部分。
最后,这是血管增强和自适应阈值处理后的图像。血管增强已经没有论文中的那么好,但是自适应阈值是完全错误的。
最后,这是我尝试根据之前链接的论文编写的 MATLAB 代码:
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
TH = 0.33;
[x,y] = find(f~=0);
hist = [x,y];
histH = histogram(hist,255,'Normalization','probability');
dataH = histH.Values;
thresholdsH = zeros(1,255);
%calculate sum minus constant for each case of T with absolute value and save into array
for i = 1:255
currentH = 0;
for j = 1:i
currentH = currentH + dataH(j);
end
currentH = currentH - TH;
currentH = abs(currentH);
thresholdsH(i) = currentH;
end
[MH, thH] = min(thresholdsH);
thH = thH / 255;
B = zeros(size(I,1),size(I,2));
for i = 1:size(I,1)
for j = 1:size(I,2)
if(f(i,j) > thH)
B(i,j) = 1;
else
B(i,j) = 0;
end
end
end
filteredImage = B;
谁能帮我找出这段代码的问题?首先,我不确定我是否为论文中提到的 4 个偶数方向为 Gabor 滤波器组提供了正确的参数。之后通过 f 的最大值进行归一化,因为否则在血管增强后我已经得到一个全白区域。您认为此代码的问题出在哪里?据我了解这篇论文,我完全按照那里提到的那样做。
【问题讨论】: