私は虹彩認識システムに取り組んでいます。を使用して画像内の連結成分を分析して瞳孔を見つけたいと思います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