Den*_*nis 5 image-processing edge-detection iris-recognition sobel
我需要找到虹膜边缘,我使用的输入图像不是完全圆形的虹膜,有时它可能被眼睑覆盖.我找到了一篇期刊文章的摘要,发现虹膜甚至被眼睑覆盖.但是,我坚持其中一个步骤.再次,它因为只有摘要而我找不到那篇文章的全文.
这就是我被卡住的地方,我有一个图像,它已经被垂直索贝尔边缘检测暗示了.我有一个图像输入,这是图片:
这是应用垂直边缘检测后的图片:
我需要移除除虹膜边缘(红色边缘)以外的所有边缘.
我的预期结果应该是这样的:
注意:有些图像可能只有瞳孔的左边缘或右边缘,如上图所示,但有些图像可能有瞳孔的左右边缘.
在我看来,有两种方法可以获得优势.
移除水平边缘,因为瞳孔边缘有点垂直.但我不知道如何去除水平边缘,它不是真正的水平线条,其弯曲的水平线条.
找到图片中最长的边缘(我也不知道找到最长边的算法是什么).
哪一个是解决我问题的正确方法?或不是以上两种选择?
如果你知道找到非全圆形物体的方法,特别是对于虹膜,请告诉我,它使我的项目更容易.
我尝试回答你的问题,我建议你使用圆霍夫变换。我正在尝试检测圆,以便您可以获得圆的半径,然后可以获得圆的大小。
这里是代码和结果:
A = imread('eye.jpg');
A = imresize(A, 0.8);
A = rgb2gray(A);
A = edge(A, 'canny');
imshow(A);
[centers, radii, metric] = imfindcircles(A,[1 100]);
centersStrong5 = centers(1:1,:);
radiiStrong5 = radii(1:1);
metricStrong5 = metric(1:1);
viscircles(centersStrong5, radiiStrong5,'EdgeColor','b');
Run Code Online (Sandbox Code Playgroud)
结果是:
希望它对您的问题有所帮助。
代码参考: http: //www.mathworks.com/help/images/ref/imfindcircles.html
| 归档时间: |
|
| 查看次数: |
538 次 |
| 最近记录: |