作者简介:①段军(1962-),男,内蒙古凉城县人,教授,博士,硕士研究生导师,毕业于北京科技大学,采矿工程专业;从事计算机人工智能与人工生命方面的理论研究,及其在实际中的应用。②刘春祥(1987-),男,内蒙古科技大学在读硕士研究生,研究方向:图像信息处理Email:liuchunxiang_2008@163.com改进Canny算子在细胞图像边缘检测中的应用段军1刘春祥2(.内蒙古科技大学信息工程学院,内蒙古包头014010)(内蒙古科技大学信息工程学院,内蒙古包头014010)【摘要】通过对传统的Canny边缘检测算子进行了理论和实验的研究,分析了高斯平滑医学细胞图像的优劣性,以及边缘失真的问题,提出了一种改进的减少边缘失真的改进算法。实验表明,改进后的算法有比较高的信噪比,并对细胞图像有良好的边缘检测效果。关键词边缘检测;医学细胞图像;Canny算子文献标识码A中图分类号TP391.41:TP301.6Impovededgedetectionalgorithmofmedicalcellimagebasedoncannydetector.DUANJun1,LiuChunxiang2(InnerMongoliaUniversityofScienceandTechnology,InnerMongolia,Baotou014010,China)(InnerMongoliaUniversityofScienceandTechnology,InnerMongolia,Baotou014010,China)Abstract:ThroughthetheoreticalandexperimentalstudyofthetraditionalCannyoperator,PaperanalyzetheadvantagesanddisadvantagesoftheGaussianfilteringonmedicalcellimagesandproposesanewmethodindecreasingedgedistortion.TheresultofexperimentshowsabetterSNRandeffectoncellimageedgedetection.Keywords:edgedetection;medicalcellimage;Cannydetector1.引言边缘检测对于图像理解、分析和图象识别来说,是一个基础性的课题,它为图像分割提供了基础和方法。在医学显微图像理解与模式识别领域中有着重要的研究性意义。从Marr和Hildreth[1]的利用Log算子零点来确定图像边缘,到Haralick[2]的通过二阶方向导数的零交叉点确定图像边缘。Clark[3]提出了可以去除Log算子中得到的虚假边缘,并得到更理想的边缘。Berghlom[4]提出一种跟踪边缘的方法,能由粗边缘到细边缘逐渐匹配,从而跟踪得到理想边缘。Goshtasby和Shyu[5]通过拟合的思想达到边缘的检测。近几年,也出现了一些新的方法,例如Elder和Zucker[6]的多尺度边缘提取、Li[7]的自适应去除模糊图像噪声。在众多算法中,Canny算法得到了广泛运用,不仅是因为其算法耗时短,而且过程相对简单。算法提出了边缘检测的三个标准[8],并采用一阶高斯函数作为过滤器。利用Gauss函数过滤,会造成原图像的过度光滑,造成边缘失真,在图像识别的过程中,例如在病变细胞的识别中,有时会产生严重的后果。针对这一问题,本文提出一种改进的算法,可以提高检测准确度,并用实验证明其效果。2.Canny算子检测的标准上述提到,Canny算子边缘检测以三个标准[9]为基准:①信噪比准则判断信噪比好坏的准则即是有较低的真边缘丢失率和较低的假边缘率,信噪比越大,检测效果越好。其数学表达式为:.20()()()xxExfxdSNRnfxd()fx是在,上的滤波器脉冲响应,()Ex为边缘,0n是高斯边缘的均方根。②定位精度准则定位是指检测出的边缘与实际边缘之间的关系,检测边缘点在实际边缘点的中心为最理想的效果。其数学表达式为:20'()'()'()xxExfxdLOCnfxd'()Ex与'()fx分别为()Ex和()fx的一阶导数。0n是高斯边缘的均方根。满足此式要求,定位精度高。③单边响应准则在检测过程中,一条真实边缘会有多个假边缘响应。单边响应准则就是要求产生这种多条假边缘的概率要低,假边缘响应应得到最大抑制。要求f对噪声响应的两个最大相邻值间距是零交叉点平均距离的两倍。即max()2()zerocrossxfxf。而22'()()''()xzerocrossxfxdxffxd满足此准则,可以保证只有一个边缘响应。3.传统Canny算法步骤一:高斯滤波器平滑图像。'IIG(,,)Ghxy为二维高斯函数,'(,)Igxy为平滑后的图像,(,)Ifxy为原图,代表卷积。步骤二:用高斯一阶偏导有限差分计算梯度幅值和方向。用两个差分卷积模板分别对图像进行卷积,然后对卷积结果的平方和进行开方运算,得到梯度幅值;用反三角运算得到梯度方向。设用一个22一阶差分模版近似计算x和y领导数'(,)xfxy和'(,)yfxy:(1,)(,)(1,1)(,1)'(,)2xfxyfxyfxyfxyfxy(,1)(,)(1,1)(1,)'(,)2yfxyfxyfxyfxyfxy在这个22差分模版内求有限差分的均值,以便在图像中的同一点计算x和y的偏导数梯度。梯度幅值和方位角分别为:22,'(,)'(,)'(,),arctan()'(,)xyxyMxyfxyfxyfxyxyfxy步骤三:对梯度幅值用非极大值抑制。用一个33窗口在每一个中心像素点上,领域的中心像素与沿梯度方向的两个像素比较,若此点不比相邻的两个点大,则置为0.步骤四:用双阈值法检测连接边缘。Canny算法分析:我们先给出两个定义:1:def函数的光滑度:一个函数n阶可导,并且其n阶导函数连续,即为光滑函数。2:def函数的逼近度:定义在[,]ab上的全体平方可积函数内任何两个函数()fx,()gx的接近程度可用如下公式来规定:1222()()baAfgfxgxdx(1)光滑与逼近:设高斯函数()()GxLR,()()*()gxfxGx,(),(),*gxfx分别代表处理后.的图像,原图像,卷积。根据卷积的微分性质:()()()*()()*nnnnnndgxddGxfxGxfxdxdxdx根据上式,我们再提出一个命题[9]:设()()*()axbxcx,其中()cx是n阶光滑的函数,则2()()Maxbxdx(2)随n的增大而增大。4.复合数学形态学滤波法由上述两式可得:光滑性越好,逼近性越差。为了解决光滑性与逼近性之间的不均衡问题,本文提出一种采用改进的数学形态学的滤波方式,来解决光滑与逼近之间的矛盾。利用复合数学形态学滤波可以在有效的抑制噪声,同时又可以得到精确的图像的轮廓。设图像为I,S是一个合适的结构元素,利用复合数学形态学检测和抗噪型形态学边缘检测[10],本文再加以改进,设F为所要获得的边缘图像,对图像进行开运算,然后腐蚀处理,得到图像F1,再对原图像进行闭运算,然后进行膨胀处理,得到图像F2,则F表示为F1与F2线性运算的和,用公式表示为:1[()()]2FISSISS数学形态学滤波器是近年来出现的重要的非线性滤波器,从开始的二值滤波发展到后来的灰度形态滤波,利用其所具有的几何特征和代数性质,在形状识别、边缘检测、纹理分析、图像恢复和增强等领域了广泛的应用。主要采用开、闭运算进行滤波操作。开运算能够除去孤立的小点,毛刺和小桥,而总的位置和形状不便,是一个基于几何运算的滤波器。闭运算能够填平小孔,弥合小裂缝,而总的位置和形状不变,通过填充图像的凹角来滤波图像。利用数学形态学开运算和腐蚀组合形成的滤波器与原图像进行线性运算可以在抑制毛刺噪声点和小桥噪声点的同时,可以有效的得到图像边缘的平滑内边界点,而数学形态学闭运算和膨胀组合形成的滤波器与原图像进行线性运算可以在抑制小孔噪声点和小缝噪声点,同时可以有效的得到图像边缘的平滑外边界点,此复合滤波器应用到Canny算子中可以去除图像目标区域内部的极大值噪声点,更精确的得到图像的边缘附近的屋脊带极值点集,非极大值抑制是对幅值图像阵列求局部最大值,为确定边缘,需要细化幅值图像中的屋脊带,即保留幅值局部变化最大点,从而产生细化边缘,为后续得到精确得到边界连接过程提供了条件。此外,采用这种复合的方式还可以在一次滤波后将所有特定于结构元素的噪声滤除干净,再次重复不会产生新的结果,以此保持图像结构不被钝化。由以上分析可知改进后的算法为:步骤一:用本文提出的改进后的复合形态学滤波器平滑图像。步骤二:用高斯一阶偏导有限差分计算梯度幅值和方向。步骤三:对梯度幅值用非极大值抑制。步骤四:用双阈值法检测连接边缘。5.实验为了验证算法的有效行和可行性,实验中会分别以加入高斯噪声、瑞利噪声、指数噪声及无噪声的情况下,与传统的算法进行比较。实验数据经过30次实验取样求得平均值。图像为8位灰度细胞图像,阈值分别选30和60,结构元素为55结构。本文利用C#程序进行,实验工具为VS2008。核心实验代码如下:{A_tempArray_close_dilate=grayDelation(A_tempArray_close,struEle,curBitmap.Height,curBitmap.Width);//闭运算加膨线性运算SIS有噪声无噪声SIS有噪声无噪声1F2F清晰图像(去除非边缘极值点)2F1F无噪声无噪声.胀A_tempArray_open_erode=grayErode(A_tempArray_open,struEle,curBitmap.Height,curBitmap.Width);//开运算加腐蚀grayValues[i]=Convert.ToByte(Convert.ToDouble(A_tempArray_close_dilate[i]+A_tempArray_open_erode[i])/2);}细胞原图图一(1)图二(2)本文算法高斯噪声图三(0.8)图四(2)本文算法瑞利噪声图五(1)图六(2)本文算法指数噪声图七(1)图八(2)本文算法.图一:无噪声情况下传统canny算子平滑不足。图二:无噪声情况下传统canny算子平滑过度。图三:高斯噪声情况下传统canny算子平滑不足。图四:高斯噪声情况下传统canny算子平滑过度。图五:瑞利噪声情况下传统canny算子平滑不足。图六:瑞利噪声情况下传统canny算子平滑过度。图七:指数噪声情况下传统canny算子平滑不足。图八:指数噪声情况下传统canny算子平滑过度。表1噪声点阵表噪声类型传统算法(平滑不足)传统算法(平滑过度)平均本文算法无噪声431830.521高斯噪声26910139.547瑞利噪声851444.546指数噪声2181611766注:上表是对平滑后的图像进行分析,统计其中剩余的孤立点,小刺点等作为残余噪声指标,故数值越小说明滤波效果越好。表2实验性能表(单位ms)噪声类型传统算法(平滑不足)传统算法(平滑过度)平均用时本文算法无噪声9975.6514685.5112330.5815352.15高斯噪声10393.4513960.5612177.00514013.16瑞利噪声10695.3310805.5210750.42513755.01指数噪声9893.312785.1611339.2313882.91由上述数据可得,滤波方面本文算法比传统Canny算子检测中使用高斯滤波效果好,在时间上本文算法多花费20%左右,从综合效果图上看,本文算法在抑制