我正在研究虹膜识别系统。我想通过分析图像中的连通分量来找到瞳孔bwconncomp
。
瞳孔检测算法如下:
- 连接组件标签通过扫描图像来工作。它根据像素连通性将像素分组为组件。连接组件中的所有像素共享相似的像素强度值,并且以某种方式相互连接。
- 一旦确定了所有像素组,就标记该组中的每个像素。确定所有组的中心和直径,直径最大的一组是瞳孔。
- 位于虹膜上方和下方的图像部分被睫毛和眼睑遮挡。这些像素位于瞳孔直径的上方和下方。要删除它们,请将这些像素设置为 NaN(不是数字)。
- 发现最小/最大光圈半径为 90/125。基于此,瞳孔左右 45 个像素被认为是所提出算法分析的虹膜区域。
我的问题是:如何将虹膜上方和下方的空间设置为 NaN。以及如何获得与虹膜对应的像素?
我的代码如下:
%% Read the file and dilate it
I = imread('eye.jpg'); %See the comments for the image.
erodedBW = rgb2gray(I);
se2 = strel('disk',35);
dilatedBW= imdilate(erodedBW ,se2);
imshow(dilatedBW);
%%pupil Detection
cc2=bwconncomp(dilatedBW);
labeled = labelmatrix(cc2);
L = bwlabel(dilatedBW);
[L, num] = bwlabel(dilatedBW);
%% Find the largest value of L
count=num;
largvalue=0;
for i=0:count,
L = bwlabel(dilatedBW);
if largvalue<=L
largvalue=L;
end
end