基于改进Canny算子的葵花籽边缘检测方法

2015-12-20 06:26张秋菊江南大学机械工程学院江苏无锡214122
食品与机械 2015年5期
关键词:阀值葵花籽端点

徐 灿 张秋菊(江南大学机械工程学院,江苏 无锡 214122)

异常图像的分割是图像处理中最重要的任务之一,分割的精度决定着分析过程的最终成败[1]。而在图像分割的过程中,边缘检测扮演着极其重要的角色。准确的边缘定位会给后续的识别、重建、匹配或者检索带来很大的帮助[2]。传统的边缘检测算子大多利用灰度值的不连续性和相似性,如Prewitt算子、Roberts算子、Sobel算子、Laplace算子和LOG算子等[3,4]。传统的边缘检测算子大多采用模板运算,简单、速度快,但其并未对图像特性和噪声内容采用预防措施,因而对噪声比较敏感,会带来很多伪边缘。Maar-Hildren[1]引入了LOG算子,通过图像的拉普拉斯变换寻找过零点来确定边缘位置。相比较之前算法,Canny算法检测是迄今为止讨论过的最好边缘检测器。尽管该算子很复杂,但由于其优秀的边缘检测效果而被广泛使用[3,4]。但传统Canny算法在复杂背景或者光线不均匀的情况下(图1),却效果一般[5-8]。在非极大值抑制后,有更多的有效边缘漏检。近年来学者[9-13]在滤波、高阀值确定以及非极大抑制方面进行了改进,提出了很多优化算法。

利用图像技术对虫蚀葵花籽进行识别和分拣,是实现葵花籽高效、自动化加工的一种有效手段[14]。葵花籽属于不规则形体,其图像是一种典型的异常图像(图2),在采用传统Canny算法对此类图像进行边缘检测时,存在漏检、误检现象。为了提高虫蚀葵花籽视觉识别的准确率,本研究拟提出一种改进型Canny算法用于葵花籽边缘检测,为葵花籽自动化分拣技术的应用提供试验依据。

图1 典型葵花籽图像Figure 1 Typical sunflowerimage

图2 常见的葵花籽图像Figure 2 Common sunflowerimages

1 传统Canny算法分析

Canny边缘检测算子是John F Canny于1986年创作出的一个多级边缘检测算法。该检测基于3个基本目标:①低误差率;② 边缘点应被很好的定位;③ 单一的边缘点响应。Canny基于前面表述的3个目标,试图从数学上找到最佳解。尽管寻找一个满足前述目标的严格形式的解是基本不可能的,但对由加性高斯白噪声污染的一维台阶边缘使用数字最佳化会得到一个结论:高斯一阶导数是最佳台阶边缘检测器的一个较好相似函数[1]。

Canny算法由下列基本步骤组成:① 用高斯滤波器平滑图像;② 计算灰度图像的梯度和方向值;③ 对梯度值图像采用非极大值抑制;④ 采用双阀值处理和边缘连接。与传统的边缘检测算子相比,Canny算法对噪声有更好的适应性,适用于高复杂背景下的边缘检测。然而,传统Canny算法也存在一定的不足[13,15]:

(1)在高斯滤波过程中,高斯滤波系数σ需要人为设定,适应性存在一定的不足;

(2)在高阀值选择过程中,也是采用预定的系数,适应性受到了限制;

(3)在双阀值处理和边缘连接后,缺少进一步的边缘连接,存在较多的断线。

2 改进的Canny算法以及区域包围算法

针对传统Canny算法的不足,从自适应高阀值确定、端点延伸和排除干扰三方面对Canny算法进行改进。

2.1 自适应高阀值确定

在Canny边缘检测中,高低阀值的确定直接决定着提取出的边缘质量。高阀值越小,提取出的边缘就越大,但同时也存在很多的伪边缘;相反高阀值越大,可以较好的抑制伪边缘,但同时一些微弱的真边缘也会丢失掉。为了更加准确的提取出有效边缘,需要结合整个区域的图像信息来确定高阀值,单一的手动确定阀值显得不再合适。通过对葵花籽灰度图像的梯度统计发现,梯度值绝大部分集中在靠近零点的区域,而后趋于平缓,梯度变化存在一个大概的转折点。在转折点之前,集中了大部分的梯度,绝大多数为背景梯度和伪边缘梯度,因而可以给高阀值的确定提供参考。为了获取转折点位置,首先对梯度归一化并量化K个等级,求取梯度统计差分,寻找最早的过零点作为最佳的分界点。高低阀值获取方法如下:

式中:

G(i,j)——位置(i,j)处的梯度值;

nG(i,j)——位置(i,j)处的归一化梯度值;

K——量化等级;

n(i)——梯度在等级i处的数量;

DG——梯度统计差分值;

Ehigh——高阀值。

低阀值采用Canny的建议,取比率为2∶1。

2.2 基于梯度方向的边缘端点延伸

由于背景噪声的干扰以及光线的不均匀,使得很多边缘强度被弱化,葵花籽灰度图像在Canny算子边缘检测后存在很多的断线处,对后续葵花籽区域的精确定位有很大的影响。对葵花籽的梯度矢量方向分析可知,在葵花籽的边缘处,梯度方向存在一定的相似性。

由图3可知,B点为边缘的端点处,由于边缘处梯度方向的相似性,采用A点的边缘性来预测C点的边缘性,算法步骤如下:

(1)对灰度图像进行Canny边缘检测,并细化[16],得到边缘图F(i,j);

(2)从左至右从上至下寻找边缘图F(i,j)中的端点,即某点为边缘点且其八邻域内只有一点为边缘点,设其方向为(m,n),在图4中,A 点处m取-1,n取-1;其中(m,n)={(1,0),(1,-1),(0,-1),(-1,-1),(-1,0),(-1,1),(0,1),(1,1)}。

(3)沿像素A、B的矢量方向,确定C点位置为(-m,-n),且设C点也为边缘点。

图3 梯度延伸示意图Figure 3 Gradient extending schematic

为了验证算法的可行性,将本研究算法与传统算法进行了比较,并利用matlab 7.0进行了试验,结果见图4。由图4可知,改进的算法较传统算法在帽檐、眼睛和鼻子等处可以获得更多的有效边缘信息。

图4 Lena图像边缘检测结果比较Figure 4 Comparison of the results of Lena's edge detection

2.3 基于最长曲线的区域包围

为了精确定位葵花籽的有效边缘,还需要对葵花籽外围的干扰区域进行去除。

经过Canny的边缘检测和边线延伸,发现干扰区域的轮廓与葵花籽区域的轮廓很相似,从图像的特性方面考虑无法去除掉这些干扰。鉴于葵花籽图像的外围轮廓线长远大于其他的轮廓线,提出了最长曲线的区域包围算法。算法步骤如下:

(1)将整幅图像标记为未读,flag(i,j)均为0,设初始像素数lnum为0,且设最长边缘长度lmax为0,最长边缘长度像素lpmax为0,并新建一幅空图像ftemp(i,j);

(2)从左至右从上至下寻找边缘图F(i,j)中的端点,并标记该点为已读,即f(i,j)=1,且lnum 加1,ftemp(i,j)=lnum,若未寻找到端点,则转第4步;

(3)采用链码进行边界跟踪,若该点的八邻域内有2个边缘点,则标记该点为已读,ftemp(i,j)等于lnum且边缘长度加1,继续搜索;若该点的八邻域内不是2个边缘点时停止搜索,并将边缘长度与最大长度lmax作比较,若大于最大长度lmax,则置其为lmax,且lpmax=lnum;

(4)对图像重新从左至右从上至下扫描,找到边缘点,采用链码进行边界跟踪,重复类似第3步的方式,直至回到起点。并将边缘长度与lmax比较,大于最大长度lmax,则置其为lmax,且lmax=lnum;扫描结束转第5步;

(5)判断ftemp中值为lpmax的点为边缘点,置1,其余的均置为0;

(6)以ftemp为边界,在边缘图像F中,从左向右并行扫描,若扫描点位置处的ftemp(i,j)=0,则置F(i,j)=0,直至ftemp(i,j)=1,i停止扫描。同样完成从右至左,从上至下,从下至上的扫描,从而完成葵花籽有效区域的精确定位。

3 结果及分析

为了检验改进Canny算法,以matlab 7.0作为试验平台,从图1中挑选了5个有代表性的葵花籽图像进行测试,见图5。图6为采用传统的Canny算子检测,其中高阀值采用梯度值升序的累计梯度的70%为梯度分界点,低阀值取高阀值的一半,f1中具有较多的有效边缘,但f2~f5中也多了很多无用的边缘,且边缘处存在断点。采用自适应阀值、端点延伸和最长曲线包围算法的综合效果图见图7。与图4比较,改进的Canny边缘检测不仅可以获得所有有效的边缘,而且剔除了目标轮廓外围的干扰边缘。

图5 测试原图Figure 5 Original images

图6 传统的Canny边缘检测效果图Figure 6 Effect diagrams of the traditional Canny operator edge-detection

图7 改进的Canny边缘检测效果图Figure 7 Effect diagrams of the improved Canny operator edge-detection

4 结论

针对传统Canny算法在葵花籽边缘检测上误检、漏检等不足,对其进行改进:提出了基于梯度统计差分的过零点检测的自适应高阀值确定方法,与传统算法相比,有更好的自适应边缘检测效果,检测到的干扰边缘减少,具有较高的鲁棒性;针对传统的Canny算子在双阀值处理和连接分析后,得到的边缘断线较多的问题,本研究提出了基于梯度方向的端点延伸处理方法,可取得更多的实际边缘,从而准确实现大部分目标区域的断线连接,减少漏检;针对葵花籽实际检测中,背景中的光线不均匀也会被Canny算法检测出来的问题,考虑到背景光线的短小,提出了基于最长曲线的区域包围算法来排除干扰曲线,有效去除了葵花籽区域外的干扰点,从而达到了葵花籽目标区域的边缘检测目的。结果表明,在高复杂背景下,本研究提出的基于改进Canny算法的边缘检测方法在葵花籽边缘检测上取得了很好的效果,对于同类异常图像的边缘检测具有一定的参考借鉴价值。

1 Rafael C Gonzalez,Richard E Woods.数字图像处理[M].阮秋琦,阮宇智,译.第3版.北京:电子工业出版社,2011:443~467.

2 李旭,王正勇,吴晓红,等.一种改进非极大值抑制的Canny边缘检测算法[J].成都信息工程学院学报,2011,26(5):564~569.

3 曾俊.图像边缘检测技术及其应用研究[D].武汉:华中科技大学,2011.

4 周林妹.数字图像边缘检测算法及其在农产品加工中的应用[J].食品与机械,2009,25(3):139~140.

5 Zhang Xiao-feng,Zhang Yu,Zheng Ran.Image edge detection method of combining wavelet lift with Canny operator[J].Procedia Technology,2011(15):1 335~1 339.

6 张帆,彭中伟,蒙水金.基于自适应阀值的改进Canny边缘检测方法[J].计算机应用,2012,32(8):2 296~2 298.

7 薛丽霞,李涛,王佐成.一种自适应的Canny边缘检测算法[J].计算机应用研究,2010,27(9):3 588~3 590.

8 徐光宝,姜东焕.自适应多尺度Canny边缘检测[J].山东建筑大学学报,2006,21(4):360~363.

9 Ranita Biswas,Jaya Sil.An improved canny edge detection algorithm based on type-2fuzzy sets[J].Procedia Technology,2012(4):820~824.

10 吕哲,王福利,常玉清.一种改进的Canny边缘检测算法[J].东北大学学报(自然科学版),2007,28(12):1 681~1 684.

11 王小华,钱月晶.一种改进的Canny边缘检测算法[J].机电工程,2008,25(12):60~63.

12 周晓明,马秋禾,肖蓉,等.一种改进的Canny算子边缘检测算法[J].测绘工程,2008,17(1):28~31.

13 周同.基于改进Canny边缘检测算子的电子稳像算法研究[D].苏州:苏州大学,2010.

14 王卫翼,张秋菊.基于机器视觉的虫蚀葵花籽识别与分选系统[J].食品与机械,2014,30(2):109~113.

15 张玲艳.基于Canny理论的自适应边缘检测方法研究[D].西安:西北工业大学,2009.

16 李昊,傅曦.指纹模式识别系统算法及实现[M].北京:人民邮电出版社,2008:126~133.

猜你喜欢
阀值葵花籽端点
非特征端点条件下PM函数的迭代根
葵花籽休闲食品生产技术方案
葵花籽,摆一摆
不等式求解过程中端点的确定
光敏传感器控制方法及使用其的灭蚊器
基于小波分析理论的桥梁监测信号去噪研究
激光多普勒测速系统自适应阀值检测算法
基丁能虽匹配延拓法LMD端点效应处理
深度学习在无人驾驶汽车中的应用
“我的葵花籽”