APP下载

机械设计图像主轮廓提取算法研究

2013-09-11方乃伟吕学强

计算机工程与设计 2013年8期
关键词:标引设计图孔洞

方乃伟,吕学强,2,张 丹+,王 涛,2

(1.北京信息科技大学 网络文化与数字传播北京市重点实验室,北京100101;2.北京拓尔思信息技术股份有限公司,北京100101)

0 引 言

机械设计图像是对机械设计进行描述的主要载体,反映了设计者的技术水平和设计思想,在机械工程中有至关重要的作用。如图1所示,机械设计图像 (图1(a))一般为二值图像,主要包含标引 (图1(c))和机械设计主体(图1(b))两个部分,而机械设计图像的主轮廓 (图1(d))指去除机械设计主体内部所有信息后得到的最大边界。在对机械设计图像的研究和应用中,人们往往只对其主轮廓感兴趣,主轮廓对机械设计图像的边界信息描述、零件配准[1]、矢量化或尺寸测量[2]等有重要的作用,是这些工作得以进行的前提,因此需要将主轮廓准确地分离出来,从而能够对其做进一步地分析和处理。

图1 机械设计图像组成

目前国内外针对机械设计图像主轮廓提取的研究比较缺乏,而且现有的轮廓提取方法不能很好地应用于机械设计图像。但通过借鉴已有的各种图像处理技术处理机械设计图像,解决主轮廓提取存在的问题,是一种可行的方法。本文通过利用和改进图像形态学、区域填充和轮廓跟踪的方法,实现了机械设计图像主轮廓的提取。

1 相关工作

二值图像的轮廓提取通常要依靠边缘检测算法[3]或边界跟踪算法[4]来实现,但由于标引及其内部孔洞的干扰,机械设计图像在使用这些方法的时候往往都得不到理想的主轮廓,如图2所示,对图1(a)进行canny边缘检测后非但没有达到轮廓提取的目的,反而使图像变得更复杂(边缘线原本应为单像素组成的细线,为达到更好的显示效果,图2中本文对边缘检测结果做了加粗处理)。

图2 机械设计图边缘检测

由机械设计图像的特点可知,要有效地将机械设计图像的主轮廓提取出来,需要解决以下两个问题:首先需要对图像内部存在的孔洞进行填充,避免轮廓提取时在内部产生不必要的边界;其次是将相互粘连的主轮廓和标引分离开,消除标引线对主轮廓的干扰。孔洞填充问题需要依靠图像区域填充的方法来解决,目前图像区域填充主要有形态学填充方法和种子填充方法两种。

形态学填充方面,文献 [5]根据式 (1)选择初始标记图像F,并对图像进行重构操作,实现了对图像孔洞的有效填充,但由于该方法需要从图像边界开始逐步向图像内部进行扩张,需要经过多次的迭代才能得到图像的边界,比较耗时。文献 [6]针对文献 [5]存在的问题,利用式(2)对初始标记图像F进行设置,仍利用重构方法得到图像轮廓,迭代的次数比文献 [5]大大减少,填充效率得到极大的提高,但该方法在图像的区域面积较大时处理仍然较慢

种子填充算法可以细分为Flood Fill[7],扫描线种子算法[8,9]等,这些算法的核心思想是一致的,都是从区域内指定的种子点开始,向各个方向搜索并对像素进行逐个处理直到区域边界,各个种子填充算法只是在区域边界的方式上有所不同,且不需要对图像和图像之间的操作进行不断地迭代,直接在输入图像上进行基于像素的操作就能达到目的,填充效率较形态学填充要快得多,但是每次填充都需要给出区域中的一个点作为填充的起始点,在机械设计图中,内部孔洞区域较多且难以确定,因此现有的种子填充算法不适用于对机械设计图像区域填充进行自动处理;文献 [10]提出一种凸多边形的扫描线算法,利用扫描线与边的交点确定填充的区域,这种方法能对凸多边形进行有效地填充,但只适用于单个区域的处理。

在实现孔洞填充的基础上,机械设计图标引和主轮廓的分离问题可以考虑图像形态学的开操作进行解决,开操作一般会使对象的轮廓变得光滑,断开狭窄的线段和消除细的突出物,文献 [3]将其操作定义为

从式 (3)可以看出,开操作通过一次腐蚀操作对消除细线,再通过一次膨胀操作恢复图像的轮廓,但在处理标引线宽度较大的机械设计图像时,腐蚀操作无法将二者分离开,开操作就得不到理想的效果。

2 机械设计图像主轮廓提取方法

本文的主轮廓提取方法主要包含两个部分:第一部分,通过观察和总结机械设计图像的区域分布特性,提出一种能够自动选取种子点的区域填充方法,实现机械设计图像内部孔洞的自动填充;第二部分,在孔洞填充基础上,结合机械设计图像标引的普遍特点,对图像形态学开操作进行改进,从而将标引从主轮廓上分离出来,并利用图像轮廓跟踪原理提取出机械设计图像主轮廓。以下对本文提出的主轮廓提取方法进行具体的描述。

2.1 机械设计图像孔洞填充

种子填充算法能够高效地填充图像区域,但前提是能够为每个区域都能找到正确的种子点,若要对机械设计图像孔洞进行完全填充,需要为每个内部的孔洞区域手动确定一个种子点,这种方式在处理大量机械设计图像的时候显然是不可行的。

通过对大量机械设计图的观察可知,除了极少部分机械设计图中的标引外,机械设计的内容都不与出现图像的边界相交,也就是说,对于大部分机械设计图像,它们的外部可以看成一个由图像边界和机械设计图像外轮廓共同围成的 “孔洞”,若对机械设计外部区域进行填充则只需要选择一次种子点并进行一次孔洞填充。本文利用这一特点,提出一种间接获取无孔洞机械设计图像的方法。首先,为保证方法的普遍适用性,我们对机械设计图像进行预处理,处理方法如式 (4)

式中:A(x,y)——机械设计图像,PMark——孔洞填充的像素值,预处理操作将图像的边界全部设置为填充像素值,将边界上的标引像素消除,保证了机械设计的外部只有一个连通的区域。对经过处理的机械设计图外部进行孔洞填充,具体的方法为:从左到右,从上到下开始扫描图像,选择和边界相邻的第一个背景像素作为种子点,并执行种子填充算法,得到一幅外部孔洞填充的图像 (如图3(a)所示)。从外部孔洞填充图像得到内部无孔洞的图像的方法可以用式 (5)来表示,它将机械设计图像的轮廓线及其内部所有点和外部孔洞区域根据填充像素值区分开来,这样就得到了内部孔洞全部得到填充的机械设计图像 (图3(b))

图3 机械设计图像孔洞填充

2.2 机械设计图像标引消除

2.1 节解决了机械设计图像的孔洞填充问题,但并没有对机械设计图像的标引进行处理 (如图3(b))。本节主要对机械设计图像的标引和主轮廓分离的方法进行研究。对孔洞填充后的机械设计图进行分析,可以发现以下几个特点:

(1)和机械设计图主轮廓相比,标引线的宽度较小。

(2)图像中的数字几乎不和机械设计图主轮廓直接相连。

(3)主轮廓所围的区域面积明显大于其它区域面积,是图像中各区域面积中的最大者。

基于以上分析可知,标引线分离是标引消除的一个关键问题。图像形态学中的膨胀能使图像扩大而腐蚀能使图像缩小[11],利用这一原理我们可以考虑先利用腐蚀操作将标引线条逐渐变细并和主轮廓分离,再通过膨胀操作恢复主轮廓形状,但腐蚀操作过多有可能对主轮廓的形状产生影响,因此需要确定腐蚀和膨胀的量。将上述轮廓和标引分离的操作定义为S,则S可以用式 (6)表示

式中:Dilate、Erode——膨胀、腐蚀操作,n——重复进行腐蚀和膨胀的次数,特别地,当n=1时,式 (6)等价于式 (3),即相当于对图像进行了一次开操作。本文通过选取不同的参数n,分别测试引线分离的效果,经实验表明,当n在取2时能够取得最理想的效果。

如图4(a)所示,经过标引和主轮廓的分离后,机械设计图主轮廓已经基本独立出来,但图像中有很多细小的区块存在,本文通过基于轮廓跟踪的算法解决这些图像的主轮廓提取问题。图像的轮廓跟踪算法现在已经比较成熟,此处不再赘述。根据文献 [12]算法提取出图像中的所有轮廓并利用边界跟踪的方法计算轮廓面积,其中面积的最大者即机械设计图像的主轮廓 (如图4(b)所示)。

图4 标引分离与主轮廓提取

3 实验结果及分析

本文实验平台是:CPU为Intel Core i7-2670QM,主频2.2GHz,内存8G,操作系统为Windows7。

3.1 主轮廓提取实验结果及分析

为验证主轮廓提取方法的有效性,对1000幅机械设计图像进行主轮廓提取实验,并统计主轮廓提取的成功率,由于对单幅图像的主轮廓提取成功与否很难定量地分析,本文给出了两个条件用以判定一幅机械设计图像的主轮廓被正确提取出来:

(1)图像中的标引已经被完全清除。

(2)主轮廓边界的细小凸起没有因为腐蚀操作而被消除。

根据以上两个判断标准,1000幅图像中有842幅图像成功提取了其主轮廓,成功率达到84.2%,实验表明本文方法具有一定的实际意义。图5给出了部分机械设计图像主轮廓提取的过程及结果。其中,第一列为机械设计原图,第二列为孔洞填充结果,第三列为标引分离结果,第四列为主轮廓提取结果。

图5 部分机械设计图像轮廓提取结果

对于提取主轮廓失败的机械设计图像,主要是由于出现了以下情况:

(1)原图的主轮廓上存在断线,导致孔洞填充结果不正确。

(2)图像的标引线宽度较大,开操作无法将其与主轮廓分离开。

(3)机械设计图轮廓填充主轮廓上存在宽度较小的部分,在图像开操作过程中被误当称标引去除掉。

3.2 孔洞填充实验结果及分析

为验证本文孔洞填充算法的有效性,首先选取了5幅机械设计图像,分别用文献 [5,6]和本文的方法进行孔洞填充并分别统计消耗的时间,实验结果见表1。然后,测试了3种方法在同时处理不同数量图像时的表现,仍然以时间作为衡量标准,实验结果如表2所示,为更直观地观察3种算法的效率,如图6所示给出了表2对应的时间对比折线图。由于文献 [5,6]的方法每次迭代操作都需要进行一次膨胀操作,一次图像 “与”操作,以及一次图像比较操作,每一步的操作都需要对不同图像的大量像素进行访问操作,极大影响了算法的执行效率,而本文方法则直接在输入图像上对图像像素值进行操作,因此效率更高,如表1所示,本文方法在单幅图像的处理上效率得到了极大的提高,另外,从图6可以看出,随着处理图像的数目的增加,本文方法在处理时间上的优势变得越来越明显。

表1 单幅图像填充时间对比

表2 处理不同数量图像时的填充时间对比

4 结束语

本文结合孔洞填充、形态学处理和轮廓跟踪相关理论,提出一种机械设计图像主轮廓提取算法。该算法分为机械设计图像孔洞填充和标引消除两个部分。在机械设计图像孔洞填充中,提出一种自动种子填充算法,提高了孔洞填充的效率;在标引消除中,根据定义的标引分离操作实现标引线和轮廓的分离,并通过轮廓区域面积计算获得机械设计图像的主轮廓。通过实验表明,本文方法能够快速提取出符合要求的机械设计图像主轮廓。但本文方法不适用于对断线比较明显以及包含特殊标引线 (如引线的部分区域和机械设计轮廓形成封闭区域)的机械设计图像,今后的研究将着眼于图像主轮廓断线的连接以及孔洞的正确识别。

图6 3种算法的时间对比折线

[1]SUN Qiang,YE Yutang,SONG Yuncen,et al.Fast and stable method based on optimized RANSAC algorithm for two-dimensional image [J].Computer Engineering and Design,2012,33 (6):2373-2377 (in Chinese). [孙强,叶玉堂,宋昀岑,等.基于优化RANSAC算法的二次元快速稳定配准[J].计算机工程与设计,2012,33 (6):2373-2377.]

[2]LIU Kewen,ZHOU Ping,FU Binbin.Measurement of circular ring parts’form and position size base on machine vision[J].Industrial Control Computer,2010,23 (7):1-3 (in Chinese).[刘科文,周平,付斌斌.基于机器视觉的圆环形零件形位尺寸自动测量 [J].工业控制计算机,2010,23(7):1-3.]

[3]LIU Chao,ZHOU Jiliu,HE Kun.Adaptive edge-detection method based on Canny algorithm [J].Computer Engineering and Design,2010,31 (18):4036-4039 (in Chinese). [刘超,周激流,何坤.基于Canny算法的自适应边缘检测方法[J].计算机工程与设计,2010,31 (18):4036-4039.]

[4]CHEN Youguang.Boundary tracing、region filling and applications of chains code [D].Shanghai:East China Normal University,2006:13-33 (in Chinese). [陈优广.边界跟踪、区域填充及链码的应用研究 [D].上海:华东师范大学.2006:13-33.]

[5]RUAN Qiuqi.Digital image processing using MATLAB [M].Beijing:Publishing House of Electronics Industry,2009:273-276(in Chinese). [阮秋琦.数字图像处理:MATLAB版[M].北京:电子工业出版社,2009:273-276.]

[6]Hasan M M,Mishra P K.Improving morphology operation for 2Dhole filling algorithm [J].International Journal of Image Processing,2012,6 (1):1-12.

[7]LEE J,KANG H.Flood fill mean shift:A robust segmentation algorithm [J].International Journal of Control,Automation and Systems,2010,8 (6):1313-1319.

[8]Bei L,Ying P,Xiaohua W.One improved scan line seedfilling algorithm [C]//China-Ireland International Conference on Information and Communications Technologies,2007:936-942.

[9]Daewoong K,Kilhyung C.Adaptive scanline filling algorithm for OpenVG 2Dvector graphics accelerator [J].IEICE Transactions on Information and Systems,2009,92 (7):1500-1502.

[10]CAI Shijie,SONG Jiqiang,CAI Min.Computer graphics with OpenGL [M].3rd ed.Beijing:Publishing House of Electronics Industry,2010:159-167 (in Chinese). [蔡 世杰,宋继强,蔡敏.计算机图形学 [M].3版.北京:电子工业出版社,2010:159-167.]

[11]RUAN Qiuqi,RUAN Yuzhi.Digital image processing [M].2nd ed.Beijing:Publishing House of Electronics Industry,2007:423-431 (in Chinese). [阮秋琦,阮宇智.数字图像处理 [M].2版.北京:电子工业出版社,2007:423-431.]

[12]GE Weihua,CHEN Youguang.Calculation of image’s region area based on contour tracing [J].Computer Application and Software,2008,25 (6):239-274 (in Chinese). [葛伟华,陈优广.基于边界跟踪的区域面积计算 [J].计算机应用与软件,2008,25 (6):239-274.]

猜你喜欢

标引设计图孔洞
太庙历史文化展设计图、非洲木雕展设计图
一种面向孔洞修复的三角网格复杂孔洞分割方法
孔洞加工工艺的概述及鉴定要点简析
档案主题标引与分类标引的比较分析
设计图失窃案
西夏的“炮”设计图
大数据时代数字资源的主题标引研究
强动载作用下孔洞汇合对延性金属层裂损伤演化过程的影响*
关于关键词标引的要求
关于关键词标引的要求