赵玲++张伟
摘 要:数字图像处理和计算机视觉有一个基本问题就是边缘检测。图像中会有亮度变化比较明显的点就是图像的边缘。图像的边缘表现出了图像的位置信息、轮廓特征等。边缘检测现在只要应用在分析和处理图像中,像提取图像特征、分割图像、增强图像、复原图像、模式识别、图像压缩等。本文介绍了边缘检测算法中的几种经典边缘检测算法,讨论了这几种经典的边缘检测算子的若干性能判据,通过实验验证:不同的边缘检测算子对分辨率不同的图像性能变化是不同的。
关键词:边缘检测 图像处理 检测性能 图像分辨率
中图分类号:TP751 文献标识码:A 文章编号:1672-3791(2014)05(b)-0023-02
图像特征提取中广泛应用了边缘检测。图像中最基本的特征就是图像的边缘,一幅图像主要由它的轮廓边缘特征提供。所以在图像处理中很重要的一步就是提取和检测边缘,边缘检测算法的好坏对整个图像处理系统的性能都会产生影响。提取图像中对象与背景间的交界线需要通过某种算法来得到边缘检测的实质。目前使用的不同的边缘检测算子各有优缺点,因此,图像的边缘检测算法需要进一步的研究与改进。文中介绍了几种经典的边缘检测算法并对这几种算法进行了比较。
1 边缘检测算法简介
1.1 经典边缘检测算法
图像边缘检测可以减少大量的无关数据量,保留图像中重要属性。目前,边缘检测的方法有很多,比较常用的几种经典检测算子[1~3]可分为基于一阶微分和基于二阶微分两种。基于一阶微分的方法主要包括Roberts算子,Sobel算子,Prewitt算子和Krisch算子等。基于二阶微分的方法通过寻找图像二阶导数过零点来寻找边界,如Laplacian算子。
Robers算子:该算子利用局部差分寻找边缘,它是在2×2的邻域上计算对角导数。
Sobel算子:该算子有2个,一个是检测水平边缘的;另一个是检测垂直边缘的。Sobel算子对图像中像素的位置信息做了加权,因此,比其他梯度算子的检测效果更好。
Prewitt算子:该算子与sobel算子相同。这两种算子都是对图像中的每一点用3×3模板做卷积,不同的是采用的卷积核不同。该算子具体的检测步骤是:依次用边缘模板去检测图像,与被检测区域最为相似的取最大值作为输出,即为图像的边缘。
Kirsch算子:该算子由8个卷积核组成。图像中的每一点都用8个掩模进行卷积,每个掩模都对特定边缘方向作出最大响应,将8个方向中的最大值作为幅度图像的输出。
Laplacian算子:对一个3×3大小的区域,在实践中经常遇到以下两种Laplacian算子模板。
LOG算子:
(1)平滑滤波器是高斯滤波器。(2)增强步骤采用二阶导数。(3)边缘检测判据是二阶导数过零点并对应一阶导数的峰值。(4)使用线性内插方法在子象素分辨率水平上估计边缘的位置。常用的LOG算子是5×5的模板。
Canny算子:该算子是最常用的边缘检测方法。该算子采用最优预平滑滤波器对图像进行平滑滤波,然后采用一种称之为“非极值抑制”技术,对平滑滤波后的图像进行处理,得到所需的边缘。它是说边缘定义为在梯度方向具有最大梯度值的点。但是,Canny算子不能既抑制噪声了又准确定位了边缘。因为,该算子通过平滑滤波除去了噪声,但是却增加了边缘定位的不准确性。如果提高该算子对边缘的敏感性,同时也提高了对噪声的敏感性。
1.2 经典边缘检测算子的性能比较
(1)Roberts算子是一阶微分算子,利用局部微分检测边缘,分别计算沿45°方向的一阶微分,图像的梯度大小即为这两个45°方向上梯度向量之和。该算子不对图像进行滤波,直接对图像计算微分,所以不能将噪声很好的剔除。该算子对噪声小的图像、对边缘陡峭的图像检测效果好。
(2)Sobel算子与Prewitt算子:这两个算子都是首先对图像进行滤波,然后对图像进行差分计算,区别仅仅在于平滑滤波的权值不同。这两个算子对噪声大、灰度渐变的图像检测效果好。
(3)Laplacian算子:是二阶微分算子,其二阶微分过零点即为阶跃图像的边缘点,最小值点可作为屋顶型图像的边缘。该算子最小值算法用于屋脊型边缘的检测效果不错,但对噪声比较敏感。该算子过零点算法可直接用于检测阶跃型边缘,但是过零点的门限比较难确定,而且检测精度一般较低。
(4)Canny算子:是一阶算子。该方法实质是首先采用一个最优预平滑滤波器—高斯函数作滤波器进行滤波,然后以带方向的一阶微分算子定位导数最大值,它可用高斯函数的梯度来近似,在理论上很接近4个指数函数的线性组合形成的最佳边缘算子。它是检测阶跃型边缘效果最好算子之一,它的去噪能力比Prewitt算子,Sobel算子,Laplacian算子极小值算法都要强。
我们选取了一幅原始图像如图1所示,分别采用Roberts、Sobel、Prewitt、Kirsch、Laplacian、Log和Canny算子对图像进行边缘检测处,如图2所示。从图2中得到,经过Canny算子检测的图像边缘基本是单像素宽的,并且具有很好的连续性,边缘精度高,抗噪声能力强。所以说,Canny边缘检测算法比其它几种边缘检测算法的效果更好。
2 经典边缘检测算子对不同分辨率图像检测性能比较
图像分辨率是指图像中存储的信息量,是每英寸图像内有多少个像素点,分辨率的单位为dpi(dot per inch),不同分辨率的图像质量是不同的。图像分辨率指标的高低反映了图像清晰度的好坏。一般图像的分辨率越高,图像约清晰,图像质量越好。通过实验得到:当图像的分辨率超过300 dpi时,图像的质量虽有提高,但从视觉效果上来说提高并不明显。因此在本实验中,我们选取分辨率300 dpi图像为高分辨率图像。为了分析各种边缘检测算子对不同分辨率图像检测效果的不同,我们设定高分辨率为300 dpi,中分辨率为150 dpi,低分辨率为72 dpi。本文采用各种算子对待检测的原始图像进行检测得到实验结果如图3所示。通过分析:endprint
(1)Roberts算子:对图像分辨率的变化最不敏感,该算子对高、中、低分辨率图像,均能较好的检测出边缘,并且定位准确,检测到的轮廓细而清晰。但是该算子不能很好的检测对比度低的图像,如果图像分辨率降低的话,边缘检测效果会好些。
(2)Sobel和Prewitt算子:这两个算子的形式完全相同,只是模板系数略有不同,因此这两个算子的性能相似,对不同分辨率的图像的敏感程度也相似。从实验结果分析:Prewitt算子对图像分辨率更为敏感,但定位准确度不及Sobel算子。它们的共同特点是对图像分辨率变化敏感程度比Robert算子强,其根本原因就是它们的模板是3×3的,而Robert模板是的2×2的。
(3)Kirsch算子:该算子边缘定位比较准确,能很好的处理边缘细节。由于该算子对边缘细节比较敏感,对低分辨率的图像经该算子处理后,物体与边缘的界限会比较模糊。相比较而言,边缘检测效果比以上三个一阶微分算子差。
(4)Gauss_Laplace算子:该算子对分辨率变化最敏感,因为该算子能比较敏感的识别对图像的细节和灰度突变部分。对分辨率低的图像,由于图像的灰度突变加剧,细节信息大量丧失,因此边缘比较模糊。而对高分辨率的图像,边缘细节比较清晰。
不同的边缘检测算子对不同分辨率的图像其性能变化是有差异的。总的来说,随着图像分辨率的降低,各种算子的性能都会受到削弱,但梯度算子中Robert算子、Sobel算子的性能变化最小,Prewitt算子和Kirsch算子的性能变化相对较大,而Gauss_ Laplace算子的性能变化最为明显。
3 结语
边缘检测是图像处理与分析领域研究的热点问题,现有的大多数文章和研究注重图像处理算法,只有很少的文章关注边缘检测算法的评价和检测效果的比较。本文通过实验对几种经典的边缘检测算子进行了比较。文章虽然对几种经典的边缘检测算法做了定性的分析,也说明了针对不同的图像哪种算子的检测效果较好,但是现有的各种边缘检测算子存在着优缺点,因此,随着新的检测算子的出现,图像的边缘检测算法仍然需要进一步改进和发展。
参考文献
[1] 尹建媛.图像处理中边缘检测算法的研究[J].科技论坛,2008(4).
[2] (美)William K.Prant.数字图像处理[M].邓鲁华,译.3版.北京:机械工业出版社,2005:312-333.
[3] (美)Kenneth R.Castleman.数字图像处理[M].朱志刚,译.北京:电子工业出版社,2002:387-391.endprint
(1)Roberts算子:对图像分辨率的变化最不敏感,该算子对高、中、低分辨率图像,均能较好的检测出边缘,并且定位准确,检测到的轮廓细而清晰。但是该算子不能很好的检测对比度低的图像,如果图像分辨率降低的话,边缘检测效果会好些。
(2)Sobel和Prewitt算子:这两个算子的形式完全相同,只是模板系数略有不同,因此这两个算子的性能相似,对不同分辨率的图像的敏感程度也相似。从实验结果分析:Prewitt算子对图像分辨率更为敏感,但定位准确度不及Sobel算子。它们的共同特点是对图像分辨率变化敏感程度比Robert算子强,其根本原因就是它们的模板是3×3的,而Robert模板是的2×2的。
(3)Kirsch算子:该算子边缘定位比较准确,能很好的处理边缘细节。由于该算子对边缘细节比较敏感,对低分辨率的图像经该算子处理后,物体与边缘的界限会比较模糊。相比较而言,边缘检测效果比以上三个一阶微分算子差。
(4)Gauss_Laplace算子:该算子对分辨率变化最敏感,因为该算子能比较敏感的识别对图像的细节和灰度突变部分。对分辨率低的图像,由于图像的灰度突变加剧,细节信息大量丧失,因此边缘比较模糊。而对高分辨率的图像,边缘细节比较清晰。
不同的边缘检测算子对不同分辨率的图像其性能变化是有差异的。总的来说,随着图像分辨率的降低,各种算子的性能都会受到削弱,但梯度算子中Robert算子、Sobel算子的性能变化最小,Prewitt算子和Kirsch算子的性能变化相对较大,而Gauss_ Laplace算子的性能变化最为明显。
3 结语
边缘检测是图像处理与分析领域研究的热点问题,现有的大多数文章和研究注重图像处理算法,只有很少的文章关注边缘检测算法的评价和检测效果的比较。本文通过实验对几种经典的边缘检测算子进行了比较。文章虽然对几种经典的边缘检测算法做了定性的分析,也说明了针对不同的图像哪种算子的检测效果较好,但是现有的各种边缘检测算子存在着优缺点,因此,随着新的检测算子的出现,图像的边缘检测算法仍然需要进一步改进和发展。
参考文献
[1] 尹建媛.图像处理中边缘检测算法的研究[J].科技论坛,2008(4).
[2] (美)William K.Prant.数字图像处理[M].邓鲁华,译.3版.北京:机械工业出版社,2005:312-333.
[3] (美)Kenneth R.Castleman.数字图像处理[M].朱志刚,译.北京:电子工业出版社,2002:387-391.endprint
(1)Roberts算子:对图像分辨率的变化最不敏感,该算子对高、中、低分辨率图像,均能较好的检测出边缘,并且定位准确,检测到的轮廓细而清晰。但是该算子不能很好的检测对比度低的图像,如果图像分辨率降低的话,边缘检测效果会好些。
(2)Sobel和Prewitt算子:这两个算子的形式完全相同,只是模板系数略有不同,因此这两个算子的性能相似,对不同分辨率的图像的敏感程度也相似。从实验结果分析:Prewitt算子对图像分辨率更为敏感,但定位准确度不及Sobel算子。它们的共同特点是对图像分辨率变化敏感程度比Robert算子强,其根本原因就是它们的模板是3×3的,而Robert模板是的2×2的。
(3)Kirsch算子:该算子边缘定位比较准确,能很好的处理边缘细节。由于该算子对边缘细节比较敏感,对低分辨率的图像经该算子处理后,物体与边缘的界限会比较模糊。相比较而言,边缘检测效果比以上三个一阶微分算子差。
(4)Gauss_Laplace算子:该算子对分辨率变化最敏感,因为该算子能比较敏感的识别对图像的细节和灰度突变部分。对分辨率低的图像,由于图像的灰度突变加剧,细节信息大量丧失,因此边缘比较模糊。而对高分辨率的图像,边缘细节比较清晰。
不同的边缘检测算子对不同分辨率的图像其性能变化是有差异的。总的来说,随着图像分辨率的降低,各种算子的性能都会受到削弱,但梯度算子中Robert算子、Sobel算子的性能变化最小,Prewitt算子和Kirsch算子的性能变化相对较大,而Gauss_ Laplace算子的性能变化最为明显。
3 结语
边缘检测是图像处理与分析领域研究的热点问题,现有的大多数文章和研究注重图像处理算法,只有很少的文章关注边缘检测算法的评价和检测效果的比较。本文通过实验对几种经典的边缘检测算子进行了比较。文章虽然对几种经典的边缘检测算法做了定性的分析,也说明了针对不同的图像哪种算子的检测效果较好,但是现有的各种边缘检测算子存在着优缺点,因此,随着新的检测算子的出现,图像的边缘检测算法仍然需要进一步改进和发展。
参考文献
[1] 尹建媛.图像处理中边缘检测算法的研究[J].科技论坛,2008(4).
[2] (美)William K.Prant.数字图像处理[M].邓鲁华,译.3版.北京:机械工业出版社,2005:312-333.
[3] (美)Kenneth R.Castleman.数字图像处理[M].朱志刚,译.北京:电子工业出版社,2002:387-391.endprint