首页 > 其他 > 详细

Canny边缘检测

时间:2020-12-12 18:16:55      阅读:33      评论:0      收藏:0      [点我收藏+]

最近在学习图像处理的经典算法,看到一篇对Canny边缘检测讲解还不错的文章,在此做个记录。

1.Canny边缘检测基本原理

(1)图像边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。

(2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。

(3)类似与Marr(LoG)边缘检测方法,也属于先平滑后求导数的方法。

2.Canny边缘检测算法:

step1:用高斯滤波器平滑图像;

step2:用一阶偏导的有限差分来计算梯度的幅值和方向;

step3:对梯度幅值进行非极大值抑制;

step4:用双阈值算法检测和连接边缘。

 

详细步骤如下:

1. 高斯滤波去噪:

技术分享图片

 

 2. 用一阶偏导的有限差分来计算梯度的幅值和方向

 

 技术分享图片

 

技术分享图片

 

 

 3. 非极大值抑制(NMS):

             仅仅得到全局的梯度并不足以确定边缘,因此为确定边缘,必须保留局部梯度最大的点,而抑制非极大值。(non-maxima suppression,NMS)

             解决方法:利用梯度的方向。

技术分享图片

 

4. 用双阈值算法检测和连接边缘

           对非极大值抑制图像作用两个阈值th1和th2,两者关系th1=0.4th2。我们把梯度值小于th1的像素的灰度值设为0,得到图像1。然后把梯度值小于th2的像素的灰度值设为0,得到图像2。由于图像2的阈值较高,去除大部分噪音,但同时也损失了有用的边缘信息。而图像1的阈值较低,保留了较多的信息,我们可以以图像2为基础,以图像1为补充来连结图像的边缘。

链接边缘的具体步骤如下:

          对图像2进行扫描,当遇到一个非零灰度的像素p(x,y)时,跟踪以p(x,y)为开始点的轮廓线,直到轮廓线的终点q(x,y)。

          考察图像1中与图像2中q(x,y)点位置对应的点s(x,y)的8邻近区域。如果在s(x,y)点的8邻近区域中有非零像素s(x,y)存在,则将其包括到图像2中,作为r(x,y)点。从r(x,y)开始,重复第一步,直到我们在图像1和图像2中都无法继续为止。

          当完成对包含p(x,y)的轮廓线的连结之后,将这条轮廓线标记为已经访问。回到第一步,寻找下一条轮廓线。重复第一步、第二步、第三步,直到图像2中找不到新轮廓线为止。

         至此,完成canny算子的边缘检测。

 

 

参考自http://www.techbulo.com/2362.html

Canny边缘检测

原文:https://www.cnblogs.com/sweetgrapes/p/14125329.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!