结合数学形态学和图像融合的边缘检测算法
2013-08-10吕金坤王明泉蔡文涛
吕金坤,王明泉,蔡文涛
(中北大学仪器科学与动态测试教育部重点实验室,山西 太原 030051)
责任编辑:时 雯
由于边缘检测是图像处理中最基础的内容之一,所以国内外专家学者对边缘检测进行了深入的研究,相关的算法也非常之多。随着科学技术和现代工业的飞速发展,边缘检测被应用在越来越广泛的领域,从而它仍是图像处理中需要研究的重点课题。
图像最本质的特征是边缘。数学形态学作为新兴图像边缘检测方法的其中一种,具有简化图像数据、除去不相干结构、保持图像的基本形态特征、易于硬件实现等特点,可以有效弥补经典边缘检测方法的不足。基于此,本文提出了基于数学形态学和图像融合相结合的图像边缘检测算法MDY,得到了比较好的效果。
1 经典的边缘检测方法描述
在边缘检测中,经典算法都是基于掩模求卷积的方法来实现边缘检测的,如Roberts算子和Sobel算子。Roberts算子对陡峭的低噪声图像处理效果较好。文献[1]针对Roberts算法代码执行效率最高,但对噪声十分敏感的特点,给出了一种基于滤波技术的改进Roberts算法。Sobel算子对噪声较多和灰度渐变的图像处理得较好,但是在进行边缘检测中也检测出了一些伪边缘,降低了检测定位精度。文献[2]给出了一种基于改进Sobel模板的灰色关联分析边缘检测算法,可以获得很好的边缘特性。拉普拉斯算子是一种二阶导数算子[3],平滑和微分合并后的算子就是高斯—拉普拉斯算子(LOG算子)。LOG算子定位精度高,检测到的边缘的连续性较好,但是其对噪声很敏感。Canny算子在边缘检测过程中具有误码率低、定位精度高等优点。但固定大小的高斯滤波器不能满足对具有不同尺度大小的边缘结构检测的要求。文献[4]依据LOG算子和Canny算子各自的优点,提出了两者相结合的边缘检测方法。
2 MDY算法描述
2.1 MDY算法基本思想
由于图像边缘检测往往要结合几种方法才能得出最佳效果,没有一种方法是万能的。所以为了更加完整、不受噪声影响地检测图像边缘,本文采用一种新的图像边缘检测方法MDY算法对图像进行边缘检测。该算法的思路为:将含有待检测的目标物的图像复制一份,并将这幅复制的图像通过数学形态学的方法整个扩大一个像素。随后用原图进行图像相减运算,便可获得目标物边缘。
2.2 数学形态学处理方法
数学形态学是一种数学分析方法,它是以严格的数学集合论为基础的一门新兴学科,其基本思想是采用具有一定形态的结构元素去度量并提取图像中的对应形状[5-6]。数学形态学有4种基本运算:膨胀、腐蚀、开启和闭合。
定义1:设F表示一幅图像,B为结构元素,则F被B膨胀的运算定义为
膨胀与腐蚀是互为对偶的运算,因此,F被B腐蚀的运算定义为
式中:Fc表示F的补集;表示B的映射。
定义2:设F表示一幅图像,B为结构元素,则F关于B开运算定义为
开运算和闭运算也是互为对偶的运算,所以F关于B闭运算的定义为
式中:“◦”表示开运算符号;“·”表示闭运算符号。
膨胀是一种扩张变换,是对图像外部做滤波处理;而腐蚀则是一种收缩变换,是对图像内部做滤波处理。这两种变换都对灰度值变化明显的图像边缘较为敏感。形态开运算具有平滑图像轮廓的功能,但闭运算一般能填补轮廓上的缝隙。因此,形态学算子经常被用于对图像的边缘进行检测、降噪。
2.3 图像融合
得到的边缘信息并不能真正反映该图像的边缘信息,只有融合为一幅图像,才是最终的边缘。在图像融合的过程中,融合规则的选取直接影响图像的质量。在像素级的融合方法中,基于单像素点的融合方法虽然简单且计算量少,但效果往往不太理想。因此,本文采用基于像素点邻域特征的图像融合规则。
2.4 开源软件ImageJ的简单介绍
ImageJ[7]是一个基于Java的公共的图像处理软件,它由National Institutes of Health开发。可运行于Microsoft Windows,Mac OS,Mac OS X,Linux,和 Sharp Zaurus PDA等多种平台。ImageJ通过Java插件被设计为开放体系结构,用户可以安装图像处理、分析方面的插件,这些插件都可以使用内置的编辑器和编译器,适当地运用插件可以解决多数图像处理的问题。ImageJ支持图像栈(stack)功能,即在一个窗口里可以以多线程的形式层叠多个图像,并行处理。只要内存允许,ImageJ能打开任意多的图像进行处理。
3 在ImageJ软件上MDY算法的实现
Step1:图像去背景操作。通过指令Subtract Background实现。该命令可以使图像的直方图由双峰的变为单峰的,便于阈值的选取和二值化。
Step2:采用中值滤波Median对原图像进行滤波去噪。
Step3:复制 Duplicate。
Step4:腐蚀 Process—Binary——Options,Iterations=1,Process—Binary—Erode。
Step5:图像相减 Process——Image Calculator—Subtract。
利用宏语言编写代码使其自动操作,部分核心代码为
写好之后将文件名命名为“StartupMacros”。通过Plugins—Macros—Install安装之后,下次再运行ImageJ时该操作就会自动加载,以一个命令按扭的形式存在。
4 实验结果分析
为了验证MDY算法的效果,分别用Roberts算子、Sobel算子、LOG算子、Canny算子、数学形态学算子、小波变化方法对图1的工业CT原始图像进行边缘检测试验。边缘检测结果如图2所示。
图1 工业CT原始图像
图2 边缘检测结果
对比各算法的边缘检测结果可以得知,本文采用的新的图像边缘检测算法MDY对边缘的检测具有抗噪性好,边缘细节丰富且轮廓比较清晰、光滑、无断点和断裂边缘的优点,为下一步进行图像分割做好了充分的准备。由于是在ImageJ上编程实现该算法,该算法能够以一个按钮的形式存在,方便用户操作,节省时间,并且可以对多幅图片进行并行处理。
5 结论
本文在检测工业CT图像边缘方面提出了一种新的方法。图2g是本文提出的算法对工业CT图像进行边缘检测的结果,可明显地观测到本文提出的算法在检测图像边缘方面优于其他方法,且降噪效果更好。
[1]盘莉莉,刘晓刚,胡庆辉.一种改进的roberts算法在焊缝识别中的应用研究[J].电焊机,2010,40(7):42-44.
[2]梁娟,侯海虹.基于改进Sobel模板的灰色关联分析边缘检测算法[J].电视技术,2012,36(9):22-23.
[3]管力明,李磊,林剑.基于改进LOG算子的图像边缘检测方法[J].机电工程,2010,27(12):114-115.
[4]贺强,晏立.基于LOG和Canny算子的边缘检测算法[J].计算机工程,2011,37(3):211-212.
[5] RIVEST J F.Morphological operators on complex signals[J].Signa1 Processing,2004,84(1):133-139.
[6]冈萨雷斯.数字图像处理[M].阮秋琦,译.3版.北京:电子工业出版社,2011.
[7] The Java Language[EB/OL].[2012-05-12].http://java.sun.com.