1、许多经典的算法很难同时兼顾这两点:去噪同时不损坏边缘信息。,边缘检测,平滑图像、去除噪声,主要基于导数计算,但是同时会减弱一定的边缘信息;求梯度值,梯度幅度值判定,初步确定图像边缘点,有时某些梯度幅度值较大点并不一定是边缘点,例如纹理图像;精确定位边缘位置边缘提取要求输出的是一个二值化图像,只有黑白两个灰度,一个表示边缘,另一个表示背景,最后还需要把边缘细化成只有一个像素的高度,使效果更清晰。,滤波,增强,检测,定位,边缘检测算法,传统的边缘检测算子:Sobel算子,Prewitt算子,Roberts算子,Krich算子等,大部分处理的效果都不很好,实际处理中不太实用,而Canny算子检测的性
2、能较好,常被作为其他实验的标准来参考。Canny算子是John Canny在1986年发表的论文中首次提出的一种边缘检测算法,当时弥补了其他算法的不太好的缺点,因此Canny算子被认为是边缘检测领域较好的算法,并一直被引用,近几年来,随着研究的深入,性能更加完善的改性型的Canny算子也层出不穷,例如自适应Canny算子等。用一句话说,就是希望在提高对景物边缘的敏感性的同时,可以抑制噪声的方法才是好的边缘提取方法。,Canny算子详细原理,Canny算子检测边缘的实质是求信号函数的极大值问题来判定图像边缘像素点。算子三大准则:好的检测性能:检测出的边缘信息的漏检率最小,误检率最小,评判参数信噪
3、比SNR越大越好G(-x)表示图像边函数 f(x)滤波器函数 表示噪声的均方差,高的定位精度:Location越大越好 边缘响应次数最少:要保证只有一个像素响应,检测算子的脉冲响应导数的零交叉点平均距离D(f)满足,Canny算子详细原理,通过以上算式得出算子的近似实现:边缘点位于图像被高斯平滑后的梯度值的极大值点。,算法过程,原始图像A(x,y),B(x,y),偏导(Bx,By),初步得到边缘点,高斯平滑去噪,求导,图像边缘,极大值抑制非,双阈值检测连结边缘,详细算法过程,高斯函数 偏导数:使用微分算子求出偏导数,非极大值抑制:沿幅角方向检测模值的极大值点,即边缘点,遍历8个方向图像像素,把
4、每个像素偏导值与相邻像素的模值比较,取其MAX值为边缘点,置像素灰度值为0.,0,1,2,3,4,5,6,7,边缘方向示意图,8邻域幅角方向,双阈值检测:由于单阈值处理时,合适的阈值选择较 困难,常常需要采用反复试验,因此采用双阈值检测算法。对经过非极大值抑制后的图像作用两个阈值th1,th2,th1=0.4th2,两个阈值作用后得到两个图像1、2,较大阈值检测出的图像2去除了大部分噪声,但是也损失了有用的边缘信息。较小阈值检测得到的图像1则保留着较多的边缘信息,以此为基础,补充图像2中的丢失的信息,连接图像边缘。,链接边缘的具体步骤如下:对图像2进行扫描,当遇到一个非零灰度的像素p(x,y)
5、时,跟踪以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算子的边缘检测。,阈值th1-图像1,阈值th2-图像2,遍历图像2,非零轮廓线终点,在图像1中找对应非零点,补充到图像2中作为新的起点继续遍历,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1