博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188)
个人主页:Matlab_ImagePro-CSDN博客
原则:代码均由本人编写完成,非中介,提供有偿Matlab算法代码编程服务,不从事不违反涉及学术原则的事。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
本次分享的是基于霍夫检测(hough变换)的人眼瞳孔定位算法,用matlab实现。(有疑问或者想交流细节的QQ:3249726188)
一、案例背景介绍
前期在医学图像处理方面,介绍了CT肝脏图像分割、肺部结节分割、眼底图像血管分割等算法,前期博文链接如下:
基于Kmeans的 CT肝脏图像(医学图像)分割(基于Kmeans的 CT肝脏图像(医学图像)分割(Matlab)-CSDN博客)
基于Kmeans的肺部/肺部结节图像分割(基于Kmeans的肺部/肺部结节图像分割(Matlab)-CSDN博客)
基于Matlab的眼底图像血管分割(基于Matlab的眼底图像血管分割,Matlab实现-CSDN博客)
这次介绍的是基于霍夫检测的人眼瞳孔定位算法,先上图,各位同学可以思考一下怎么将瞳孔分割出来。
二、算法原理概述
针对上面类型的眼睛图像,考虑到瞳孔是圆形等因素。这次我们分割的核心思路是通过霍夫检测圆(hough变换)算法,定位出对应的圆形区域,进而进行定位分割。
霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体。该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换结果。霍夫变换于1962年由Paul Hough 首次提出,后于1972年由Richard Duda和Peter Hart推广使用,经典霍夫变换用来检测图像中的直线,后来霍夫变换扩展到任意形状物体的识别,多为圆和椭圆。霍夫变换运用两个坐标空间之间的变换将在一个空间中具有相同形状的曲线或直线映射到另一个坐标空间的一个点上形成峰值,从而把检测任意形状的问题转化为统计峰值问题。具体霍夫变化(hough变换)原理网上资料很多,这里不再细述了。
本文就是使用hough变换检测圆的原理,定位出瞳孔。
三、算法流程
1、读取原图,并转换为灰度图
2、对灰度图二值图,分割出瞳孔的内圆初步二值图
3、对步骤二的图像进行霍夫检测,检测定位出圆心和半径
4、对原灰度图再次进行二值化,分割出瞳孔的外圆初步二值图
5、对步骤四的图像进行霍夫检测,检测定位出圆心和半径
6、根据步骤三和步骤五的霍夫检测结果,定位出了瞳孔的内圆外圆,从而分割出瞳孔,分割完成。
四、Matlab实现效果
1、读取原图,并转换为灰度图
2、对灰度图二值图,分割出瞳孔的内圆初步二值图
3、对步骤二的图像进行霍夫检测,检测定位出圆心和半径
4、对原灰度图再次进行二值化,分割出瞳孔的外圆初步二值图
5、对步骤四的图像进行霍夫检测,检测定位出圆心和半径
6、根据步骤三和步骤五的霍夫检测结果,定位出了瞳孔的内圆外圆,从而分割出瞳孔,分割完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
专注、专一于Matlab图像处理学习、交流、代做
QQ:3249726188