基于Canny、Sobel及其改进模板算子融合的Freeman链码边缘点提取算法
2015-10-13朱戈明应自炉
朱戈明,应自炉
基于Canny、Sobel及其改进模板算子融合的Freeman链码边缘点提取算法
朱戈明,应自炉
(五邑大学 信息工程学院,广东 江门 529020)
针对传统边缘点提取算法过程复杂、计算困难的问题,设计了一种融合Canny、Sobel及其改进算子和Freeman链码的图像边缘点提取算法(简称CS-F法). 即先将Canny算法、改进Sobel算法融合处理,进行边缘提取,再采用阈值分割方法,接着使用Freeman链码,确认边界的具体位置,使图案轮廓更加接近真实轮廓且更直观. 实验表明,在一定的精度范围内(单位像素内允许是:),融合算法性能稳定,所提取的轮廓定位准确,而且能提取目标边缘有序的坐标点,解决了有些轮廓最后需要矢量化的繁琐过程.
Canny算子;Sobel算子;Freeman链码;边缘点提取
近年来,学者们提出了许多关于图像边缘轮廓提取的算法[1-2]. 边缘检测反映了图像局部特征的不连续性,通常用一阶、二阶导数来检测,常用的有Canny算子[3-4]、Sobel算子. 但单纯用这两种方法存在受噪声或速度的影响较大使得提取出来的边缘信息不准或提取效率很低的问题. 因此,本文研究基于Canny、Sobel两种算法之上,结合地毯图像及其喷印方面的实例,改进Sobel算子并融合处理,再用VC++和MATLAB编程方法提取轮廓的点坐标.
1 轮廓提取与跟踪的基本原理
1.1 图像边缘检测算法
Canny(坎尼)算子是一种既能抗噪又能保持弱边缘的算子,用泛函求导推出的高斯函数一阶导数即为最佳近似的最优边缘检测算子[5-6],但Canny算子在计算时较为复杂且速度比较慢.
Sobel(索贝尔)算子是利用梯度与差分原理组成的锐化算子,是一种加权平均算子,是对靠近中心的点的加权,以此突出边缘[7]. Sobel检测的水平和垂直边缘如下:
Sobel算子计算简便、速度快,但只能检测水平和垂直方向的边缘,对于纹理较为复杂的图像边缘,其检测效果很差,常会误判边缘点. 基于各向同性的Sobel(Isotropic Sobel)算子模板[8],在两对角线方向上提出了处理效果更加精细的两个模板算子,使得提取的轮廓清晰,并能为最后的边缘提取细化定位提供帮助:
1.2 Freeman(弗雷曼)链码
在识别图像中的目标时,往往需要对目标边缘作跟踪处理,也叫轮廓跟踪. 即通过顺序找出边缘点来跟踪边界. 链码是图像处理及模式识别中常见的一种表达线条、平面曲线及区域边界的编码技术,它有八邻域链编码和四邻域链编码两种编码方式. 连接边缘点方向的链码示意图见图1.
图1 Freeman链码的四、八邻域链码图
为了叙述问题的方便,我们采用待处理图像的二值轮廓图像(即背景是黑色、轮廓点是白色的图像)进行Freeman链码操作[9].
2 多种算法的融合过程
本实验选用的高斯噪声参数:均值0.01,方差0.005,双阈值是0.40和0.99. 用一阶偏导数的有限差分来计算梯度的幅值和方向且对梯度幅值矩阵进行梯度方向上的非极大值抑制. 多种算法融合的流程见图2,具体融合过程如下:
图2 融合算法流程图
1)对原始图像(如图3所示)添加一定量级的高斯白噪声,并采用Sobel算子的水平、垂直和对角线方向性质的卷积模板分别进行卷积运算;
图3 原始灰度图像
3)用Canny算子,采用非极大值抑制,进而设定双阈值以最大限度地抑制4个方向上的噪声,同时分别对、、、和方向角进行平滑处理和梯度幅值及方向的计算,得到、、、;
3 图像轮廓点坐标的提取
通常图像中目标对象可分为连通体和非连通体. 连通体的边界链码读取方法为:从图像边界任一像素点开始,沿着图像的边界像素点按顺时针或逆时针方向搜索,直到回到起始点坐标为止. 这种由方向链码构成的有序链称为Freeman链码. 非连通体边界链码的读取,本文暂不讨论.
3.1 识别算法及步骤
本文通过跟踪图像,得到图像的Freeman链码及各像素点对应的坐标,并将其存入数组中,具体的识别算法描述如下:
1)对图3图像先进行预处理,包括去噪、尺寸归一化,并进行灰度处理,再中值滤波,之后进行阈值分割处理形成二值化,最后采用一定阈值的Canny算子、Sobel及改进算子进行边缘提取,再将两算法进行一定的融合再处理;
2)对获取的边缘图像进行跟踪,阈值分割后,再采用Freeman链码的八邻域方式获得图像的边界点坐标;
3)对多余的毛刺部分,再次进行优化;
4)保存坐标结果,有效处理相应的坐标点,为后续的摄像机标定工作做准备,既省去了一些矢量化的过程,又实现了精确处理轮廓的目的.
3.2 两种算法的对比实验
本文研究了如图3所示的一幅普通地毯图案的边缘点的提取. 实验中对输入的彩色图案先进行灰度处理,再进行降噪滤波处理,最后经过一定的阈值的处理,再使用融合算法得到了最终满意的边缘清晰的关键点.
3.2.1 传统算法和Freeman链码处理的边缘点
对图3先进行Sobel提取,接着用双阈值是0.40和0.99的Canny算子对提取出来的边缘进一步处理,最后得到新的轮廓送入Freeman链码进行处理,得到如图4所示的轮廓和坐标.
图4 传统算法处理的轮廓及Freeman链码的坐标显示
3.2.2 融合算法和Freeman链码处理的边缘点
对图3先进行Sobel、改进Sobel的提取,接着用双阈值是0.40和0.99的Canny算子对提取出来的边缘进一步融合处理,最后得到新的轮廓送入Freeman链码进行处理,得到如图5所示的轮廓和坐标.
图5 融合算法处理的轮廓及Freeman链码的坐标显示
3.2.3 两种算法的结果对比
1)得到链码的数量和速度的比较
表1 关键点的数量和速度比较
2)峰值信噪比的对比
为比较算法对噪声的处理能力,人为添加一些噪声点进去. 为了方便比较,我们将处理前和处理后的图归一化为相同的尺寸:. 原始输入图像为未加噪声的图3,图像分别为两种算法处理的加了高斯白噪声再均值滤波后的图.
相关的计算公式如下所示:
峰值信噪比(Peak Signal Noise Ratio,PSNR)单位是dB. 由式(5)可知:图像信息的多少由PSNR值决定,其值越低,失真越多. 实验采用均值是0.01、方差是0.005的高斯白噪声,用模板均值滤波器,经计算得两种算法的MSE值分别为:,;两种算法对噪声的抑制能力的大小见表2.
表2 峰值信噪比的对比
4 结论
本文利用CS-F算法轮廓跟踪提取边界点坐标的方法通过MATLAB、VC++实验证明是可行的,且在轮廓提取方面,融合后在提取速度和误差方面有很好的表现,但是,本文方法对于图像细节和噪声很难区分的图像处理起来比较麻烦,后续仍需对相应的算法进行优化和改进,使得其在效率和实用性方面更加完善.
[1] 刘安心,余跃庆,张永亮. 三维机器视觉测量系统图像边缘提取算法研究[J]. 机械制造与自动化,2006, 35(1): 101-103, 106.
[2] SAINI V, GARG R. A comparative analysis on edge detection techniques used in image processing [J]. IOSR Journal of Electronics and Communication Engineering, 2012, 1(2): 56-59.
[3] 周晓明,马秋禾,肖蓉,等. 一种改进的Canny算子边缘检测算法[J]. 测绘工程,2008, 17(2): 28-31.
[4] 唐路路,张启灿,胡松. 一种自适应阈值的Canny边缘检测算法[J]. 光电工程,2011, 38(5): 25-31.
[5] BAO P, ZHANG Lei, WU Xiaolin. Canny edge detection enhancement by Scale multiplication [J]. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 2005, 27(9): 1485-1490.
[6]RONG Weibin, LI Zhanjing, ZHANG Wei, et al. An improved Canny edge detection algorithm [C]//Mechatronics and Automation (ICMA), 2014 IEEE International Conference. Tianjin: IEEE, 2014: 577-582.
[7] 刑军. 基于Sobel算子数字图像的边缘检测算法[J]. 微机发展,2005, 15(9): 48-52.
[8] SHEN Dehai, ZHANG Longchang. Application of improved Sobel algorithm in medical image edge detection [J]. Applied Mechanics and Materials, 2014, 678: 151-154.
[9] 汪剑,皮佑国,刘明友. 基于Freeman链码的汉字图像轮廓曲线拐角点检测方法[J]. 自动化技术与应用,2009, 28(1): 88-92.
[责任编辑:熊玉涛]
A Freeman Chain Code Edge Point Extraction Algorithm Based on Canny, Sobel and Their Amelioration Operator Fusion
ZHUGe-ming, YINGZi-lu
(School of Information Engineering, Wuyi University, Jiangmen 529020, China)
To solve the complicated calculation difficulties in traditional peripheral point extraction algorithm, an algorithm of peripheral point pick-up algorithm (CS-F) combining Canny, Sobel and their amelioration operator fusion is designed. First, Canny algorithm is combined with the improved Sobel algorithm to extract the edge and then the threshold segmentation method and the Freeman chain code algorithm are used to determine the specific position of the border and make the outline contour more approximate to the real profile and intuitive. Experiments show that in a certain range of accuracy (allowed unit pixels fromto), the fusion algorithm’s performance is stable, the extracted contour is accurate, and can extract the ordered coordinates of the target edge and save the cumbersome process of vectorization for some profiles.
the Canny algorithm; the Sobel algorithm; Freeman chain code; edge point extraction
1006-7302(2015)04-0042-06
TN911.13
A
2015-05-25
广东省自然科学基金资助项目(10152902001000002)
朱戈明(1989—),男,安徽滁州人,在读硕士生,主要从事人脸识别、人脸表情识别、图像处理算法研究;应自炉,教授,博士,硕士生导师,通信作者,主要从事人脸识别、人脸表情识别、智能信息处理和数字图像处理等研究.