【MATLAB图像处理实用案例详解(11)】——基于Hough变换的人眼虹膜定位方法

目录

    • 一、Hough变换基本原理
    • 二、算法流程
      • 2.1 分离瞳孔并估算虹膜内半径
      • 2.2 Hough变换定位内外虹膜
    • 三、效果演示

一、Hough变换基本原理

Hough 变换作为一种参数空间变换算法,直线和其他参数化形状检测的重要工具。Hough 变换具有较强的稳定性和鲁棒性,可以在一定程度上避免噪声的影响,后续研究将极坐标引入Hough 变换,使这种方法可以更加有效地用于直线检测和其他任意几何形状的检测。Ballard 提出了非解析任意形状的R表法,将Hough 变换推广到对任意方向和范围的非解析任意形状的识别,这种方法被称为广义Hough 变换,论文链接:“Generalizing the Hough transform to detect arbitrary shapes”。
【MATLAB图像处理实用案例详解(11)】——基于Hough变换的人眼虹膜定位方法_第1张图片
直线 y = m x + b y=mx+b y=mx+b可用极坐标表示为: r = x c o s ( θ ) + y s i n ( θ ) r=xcos (θ) + ysin (θ) r=xcos(θ)+ysin(θ)
【MATLAB图像处理实用案例详解(11)】——基于Hough变换的人眼虹膜定位方法_第2张图片
( r , θ ) (r, θ) (r,θ) 定义了一个从原点到该直线最近点的向量。 x 、y 平面上的任意一条直线的Hough 变换就是寻找r 、 θ 平面上的一个对应点的过程。

多级Hough 变换首先用较大的θs和θr以求出倾斜角度的大致范围,然后用较小的θs和θr对倾斜角度进行细化处理。

关于霍夫变换原理的详细解释可以参考文章:https://blog.csdn.net/didi_ya/article/details/111149724。

二、算法流程

虹膜(包括纹理的部分)是内外两个近似圆形边界之间的部分,虹膜的内侧与瞳孔相邻,外侧与眼白相邻,这两个圆不是完全同心的,需要分别对内外两个边界进行处理。本文主要研究基于Hough变换的虹膜定位方法

2.1 分离瞳孔并估算虹膜内半径

仔细观察眼睛的图像可以发现与眼睛的其他部分相比,瞳孔暗得多,所以可以采用二值化的方法分离出瞳孔,根据瞳孔图像的面积估算出虹膜的内半径。二值化方法的关键在于阈值的选取,具体的做法是,先计算出整个图像的灰度直方图,它应该有两个主要的峰值,其中第一个峰值,对应的就是瞳孔区域灰度集中的范围,第二个峰值对应的是虹膜区域的灰度集中范围。显然,提取瞳孔的二值化阈值应该选择在第一个峰值的右侧,下图是二值化后的結果,从图中可以看出,瞳孔也成功的分离了出来。
灰度直方图:
【MATLAB图像处理实用案例详解(11)】——基于Hough变换的人眼虹膜定位方法_第3张图片
二值化结果:
【MATLAB图像处理实用案例详解(11)】——基于Hough变换的人眼虹膜定位方法_第4张图片

2.2 Hough变换定位内外虹膜

三、效果演示

最终的定位结果如下:
【MATLAB图像处理实用案例详解(11)】——基于Hough变换的人眼虹膜定位方法_第5张图片
可以发现已经成功检测到了虹膜的内外边界,并将虹膜进行了提取。ok,以上便是本文的全部内容了。


如果需要源代码,可以参考资源:https://download.csdn.net/download/didi_ya/87695242
,如果遇到任何运行问题,请私信博主,看到后会免费答疑解惑。

你可能感兴趣的:(MATLAB,#,MATLAB图像处理实用案例,matlab,图像处理,机器学习)