![](https://csdnimg.cn/release/download_crawler_static/86827134/bg1.jpg)
-------------
2 Canny 边缘检测基本原理
Canny 边缘检测器是高斯函数的一阶导数,是对信噪比与定位之乘积的最优化逼近算子[1]。Canny 认为好
的边缘检测具有 3 个特点:(1)低概率的错标非边缘点和低概率不标真实边缘点;(2)检测出来的边缘点
应该尽可能的靠近真实边缘中心;(3)边缘响应是单值的。
设 表示两维高斯函数, 表示图像;Canny 边缘检测算子为 式中: 是边缘曲线的法向量,由于事先不知
道边缘的方向,所以取 。那么边缘点是方程 的解,即 然后通过双阈值去掉伪边缘,Canny 算子检测到的
是边缘点是高斯函数平滑后的图像拐点。
Canny 算法的实现步骤:
Step1:用高斯滤波器平滑图像,去除图像噪声。一般选择方差为 1.4 的高斯函数模板和图像进行卷积运算。
Step2:用一阶偏导的有限差分来计算梯度的幅值和方向。使用 的梯度算子计算 x 和 y 方向的偏导数 和 ,
方向角 ,梯度幅值 。
Step3:对梯度幅值应用非极大值抑制。幅值 M 越大,其对应的图像梯度值也越大,但这还不足以确定边缘,
因为这里仅把图像快速变化的问题转化成求幅值局部最大值问题,为确定边缘,必须细化幅值图像中的屋
脊带,只保留幅值局部变化最大的点,生成细化的边缘。
Step4:用双阈值算法检测并且连接边缘。双阈值法使 Canny 算子提取的边缘点更具有鲁棒性,高低阈值分
别表示为 Hth 和 Lth,对于高阈值 Hth 的选折,基于计算出的图像梯度值对应的直方图进行选取。在一幅图
像中,非边缘点数目在总图像像素点数目中占的比例表示为 Hratio,根据图像梯度值对应的直方图累加,
累加数目达到总像素数目的 Hratio 时,对应的图像梯度值设置为 Hth,在文中设定 Hratio 为 0.7。低阈值
Lth 的选择通过 Lth=Lratio*Hth 得到,文中 Lratio 设定为 0.4。最后通过对边缘点的标记和领域关系进行连
接得到最后的边缘检测图。
3 亚像素级 Zernike 矩算子精确定位边缘
Zernike 矩算子的基本思想是通过计算每个像素点的 4 个参数来判断该点是否为边缘点。像素点的 4 个参数
为:k—灰度阶跃高度,h—背景灰度,l—中心点到边缘的距离, —中心点到边缘垂线与 x 轴的夹角,各
参数物理意义参考图 1[2]。
图 1 平面亚像素边缘阶跃模型
离散图像中的一点 的 Zernike 正交矩定义为:
(1)
(1)式表明,为了计算出一点的 ,需要将该点领域的点映射到单位圆的内部,复数多项式 的极坐标形式
可以表示为:
(2)
Zernike 矩算子实现步骤:
Step1:根据模板计算矩 和 ,表 1,表 2,表 3 为推导的模板。
Step2:计算旋转角度 (3)
Step3:计算 (4)
Step4:计算 (5)
Step5:根据亚像素坐标 与像素坐标 关系计算 (6)
表 1 模板 实部
0 0.015 0.019 0 -0.019 -0.015 0
0.022 0.047 0.023 0 -0.023 -0.047 -0.022
0.057 0.047 0.023 0 -0.023 -0.047 -0.057
0.07 0.047 0.023 0 -0.023 -0.047 -0.07
0.057 0.047 0.023 0 -0.023 -0.047 -0.057
-------------