边缘检测算法分析与实现
2014-12-02付辉吕磊苟芳付强
付辉,吕磊,苟芳,付强
1 西南科技大学,四川绵阳 621000
2 平定古窑陶艺有限公司,山西阳泉 045000
1 选题背景
边缘是一幅图像中局部的像素值明显变化的部分,边缘是存在于图像中突出的部分,是背景与物体之间的界限,在图像中边缘分为倆者:首先是阶跃性的边缘,其像素的灰度值成突变性的跳跃;其次是屋顶状的边缘,其呈现在灰度值一阶导数由正值转变为负值的点。在以上提到的俩种边缘中,阶跃性的边缘中,二阶方向导数在边缘处过零点;而在屋顶状的边缘中,二阶导数在边缘处得到了极大值或者极小值。边缘检测是检索图像边缘的一种方式。边缘检测可以压缩图像的大小,并去除了一些不是很相关的信息,提供了一幅图片中的典型结构。边缘检测技术在图像处理、计算机视觉等方面有着至关重要的支撑作用,是模式识别、图像分析、目标检测与分割等的前期处理。
2 主要边缘检测算法原理分析
2.1 Sobel 算子
Sobel 边缘检测算法程序录入过程:在一幅图像中:要检测出边缘的步骤有以下几点:第1 点:接收输入到的一幅图像;第2 点:对输入的图像求取偏微分的值Gx和Gy;第3 点:采用Sobel 边缘检测算法进行梯度值的求取;第4 点:在输入图像中应用偏微分值Gx,Gy;第5 点:结合得出的结果找到斜率的绝对大小;第6 点:此时的绝对量就是所要求取输出边缘值。
2.2 Canny 算子
canny 算子的一般处理步骤:第1 点:应用高斯滤波算法对图像进行滤波,去除图像中含有的噪声;第2 点,在像素的每一点求取其斜率值和方向,此处可以应用;第3 点:用Sobel 算子提到的计算方法来计算,对边缘点的定义为斜率方向上的值最大点对斜率进行“非极大值抑制”。第4 点:应用双阈值化和边缘进行连接。
Canny 算子的缺陷,(1)想要得到较好的边缘检测效果,需要应用滤波效果好的方法,来进行更为大尺度的滤波,但是这样会遗漏一些需要保留之处;(2)Canny 算子是人为设定的双阈值,不能够实现自动调整。
2.3 Laplace 算子
以二阶导数的方式来搜索图像的边界。这种方式有优势和缺陷,优势就是由于采用了二阶导数,可以确定边界是色度明亮的边还是色度偏的暗边,色度暗>0,色度亮<0,Lapl ace 算子对边界的感应很明显。
图像的边缘是灰度值发生跳变的点,此算子利用了导数的正值和负值之间过零点的值来进行确定的,更好地应用在突出图像中的具有突变的点、线、面的检测中。
3 通过评判标准比较主要边缘检测算法及其分类
3.1 评判标准
在边缘检测算法中,要注意到以下几点:1)寻求高信噪比。即判断一个点是否为边缘点准确;
2)寻求好定位性能。即得到的边缘点最好位于真实边缘点的中间;
3)寻求好单边缘响应。对边缘的响应准确,并且排除虚假边缘。
3.2 边缘检测分类及优缺点
边缘检测的分类方式可以基于求导的阶数,基于一阶导数的边缘检测算子包括差分算子、梯度边缘检测、Roberts 算子、Sobel 算子、Prewitt 算子等;拉普拉斯边缘检测算子是基于二阶导数的边缘检测算子,该算子对噪声敏感。
1)差分算子是x 方向和y 方向的局部差分值;
2)Robert 算子利用了对角线的方式来确定局部差分值,定位性能好但抗噪性不好;
3)梯度算子基于求导的方式,梯度方向为灰度阶跃变化最大的方向;
4)Perwitt 算子的抗噪能力不强,因为其相当于Sobel算子少了第二列的权重值;
5)kerish 算子减小了由于求取平均值易于丢失细节的缺陷,是一种 3×3 的非线性方向算子;
6)Sobel 算子利用了卷积的方式在编程中采用了3x3 矩阵的来近似求导;
7)Canny 算子是通过微分算子求取边缘,在满足一些约束条件的前提下推导得到边缘检测最优化算子,采用双阀值连接图像,由于滤波幅度大易遗漏细节,阀值能够人为选取但不能自动调整;
8)laplace 算子应用了二阶导数正值和负值之间过零点的确定,其对于孤立点或端点更为敏感,因而会增强噪声;
9)LOG 算子是增强的laplace 算子,先进行滤波,然后再利用差分算子来检测在相应尺度上的边缘。
4 边缘检测算子的实现
图为几种边缘检测算子在QT 用户界面中呈现的效果:
图1 边缘检测算法的实现
[1]刘贵忠,邸双亮.小波分析及其应用[D].西安电子科技大学,1997.
[2]崔锦泰.小波分析导论[M].西安交通大学出版社,1995.
[3]张憬,郭春秋,聂雪等.快速、准确的图像阐值分割新方法[J].西安文理学院学报,2006,9(3):54-58.