中国图象图形学报JournalofImageandGraphics第6卷(A版)2001年7月第7期Vol.6(A),No.7Jul.扫描图象曲线轮廓关键点的提取及其处理王金鹤(青岛海信集团技术中心,青岛266071)摘要针对工程图样中线段的识别和提取问题,提出了一种提取扫描图象曲线轮廓关键点的算法和相应的提取条件准则.该算法可自动逐行检测扫描行中的黑游程,当相继行中的黑游程满足一定的条件准则时,即可提取出相应的黑游程边界点,并形成关键点.依据这些关键点,利用B样条曲线理论来拟合曲线,最终即可实现对图象曲线的提取.该算法不仅速度快,抗噪声性能强,且提取识别也取得了满意的效果.关键词扫描工程图轮廓跟踪B样条函数中图法分类号:TP391文献标识码:A文章编号:100628961(2001)072204AnAlgorithmfortheExtractionofDeterminantContourPointsofLinesinScannedDrawWANGJin2heAbstractTheconversionofdrawingimageintovectorformisofimportantinmanyfields,especiallyinthefieldofelectronicandmechanicalapplications.Inthispaper,anewapproachforextractingdeterminantcontourpointsoflinesinscannedengineeringdrawingsisproposed.Thismethodcannotonlyobtaindeterminantcontourpointsplacedinlinecontourofthedrawingimagebutalsoprocessthesepointsautomatically.Thebasicideaofproposedalgorithmistotallydifferentfromthatoftraditionalalgorithms,itcanremedysomedeficiencieswhicharesufferedfromtraditionalalgorithmsandexecutessuccessfullywithoutthinning.Thisalgorithmdetectsblackrunsonscan2ningorconsecutivescanninglinesautomatically,andthenextractsdeterminantcontourpointsfromscannedengi2neeringdrawings,themainideaofthedetectingalgorithmisthat:first,blackrunsoncurrentscanninglinearede2tectedautomatically,anddeterminantcontourpointsareextractedbydetectingtheedgepointsofbothcurrentblackrunandthenextblackrunwhichisonconsecutivescanninglineiftherelevantconditionholds.Second,basedonthedeterminantcontourpoints,theextractionoflinesfromtheoriginaldrawingimagewillbedoneeasilybyusingB2splinetheory.Experim行分段和识别.所谓细化就是把线条的宽度减为单象素宽,但由于细化过程抗噪声性能较差,故细化的结果将影响后继处理阶段结果的正确性.此外,若对整张图象进行细化处理,处理的工作量将很大.本文提出一种确定扫描图象曲线关键点的新算法.该算引言0工程图样进行处理和识别的首要任务就是对扫描图样中的线段进行分段和识别1~5.线条分段之间的特征点称为关键点.对线段进行分段和识别的常规做法是先对图线进行细化,然后对细化收稿日期:2000203230;改回日期:2000206212进行处理,即可直至图象结束.在预先给定的阈值基础上,该算法能自动调节已生成关键点的稀疏程度,且对线条宽度没有限制,效果较佳,最后,对提取出的关键点进行拟合,重构曲线.(如图1所示),∆1和∆2分别表示两个偏差阈值.1域的数据结构及几个基本模块1.1定义黑游程:由光栅扫描图象某扫描行上连续黑象素构成的区域称作黑游程.关键点:图象边界变化处的坐标点.域:线条轮廓关键点由链表表示,链表的结点称作域.这里,对图象的检测方式是自上至下、自左至右进行的,因此域的连续生成过程即是轮廓关键点的搜索和生成过程.1.2域的数据结构用C++表述的域的数据结构定义如下:structnode{intx1,y1,x2,y2;intNextEdgePointX1,NextEdgePointX2,NextEdgePointY;unsignedcharLeftEdgeMode,RightEdgeMode;shortintChangeCounter;structnode3Next;structnode3Prev;}在上述数据结构中,x1,y1,x2,y2为待输出的左右两个关键点的坐标分量;NextEdgePointX1,NextEdgePointX2,NextEdgePointY为node结构中被检测到的后继边界点;LeftEdgeMode,Righ图1关键点的生成示意图若满足邻接条件Yi=LY+1则域的生成条件为满足以下条件之一:1(1)(2)(3)|Xi-LX1|>∆1;2|Xi-LX2|>∆2;边界方向有变化(此条件由边界方向判别函数所返回的值确定)对于链表中某N结点,若与正在检测的某黑游程邻接(如图1),根据∆1,∆2等偏差阈值,判断是否满足邻接条件及域的生成条件...