面向数控雕刻的图像角点检测研究
2014-01-31翟敬梅唐会华邹焱飚
翟敬梅,唐会华,邹焱飚
(华南理工大学机械与汽车工程学院,广东 广州 510641)
面向数控雕刻的图像角点检测研究
翟敬梅,唐会华,邹焱飚
(华南理工大学机械与汽车工程学院,广东 广州 510641)
基于图像处理的数控雕刻中,角点检测是图像处理的重要环节,该文通过相对链码和绝对链码引入三点链码和与三点链码差判定角点,提出邻域最大值和相邻角点斜率差值辨别伪角点的方法。通过剪纸图像对算法进行仿真并与其他算法比较,结果表明该算法检测到的真实角点占检测角点的比率大幅提高。
数控雕刻;角点检测;链码;伪角点
0 引 言
传统手工雕刻劳动强度大,耗费时间长,成品率低,无法批量生产,而且只有技艺高超的人才能雕刻出完美的艺术品。具有图像处理的数控雕刻系统很好地解决了这一问题,其只需获取雕刻工艺品的原始图像,经过一系列图像处理操作,通过数控设备加工出来,从而大大提高产品的质量和效率。
在雕刻系统图像处理中,角点检测是很重要的一环。角点是图像的重要局部特征[1],如对角点处理不当,会使图像的棱角模糊不清。目前,许多研究者对角点做了研究。王崴等[2]对Harris算法进行了改进,改进后的算法能够准确定位T型和斜T型角点,并且提高了角点的检测速度,但该算法没有考虑T型和斜T型之外的角点检测情况。Ryu J.B.等[3]指出Harris算法对T、Y、X型角点的定位精度差,提出运用Log-log对数变换提高角点的定位精度。赵万金等[4]针对Harris算法的不足,提出了一种自适应的改进算法,经改进后算法检测到的角点分布更加均匀。Awrangjeb等[5]提出多曲率积弦到点距离累加的角点检测算法,该算法能减少噪声对角点检测的影响,但易去除角度较大或较小的真实角点。汪剑等[6]
用Freeman链码表示轮廓,根据差别码判定角点,并用曲率极大值法去除伪角点,取得了一定效果,但该方法所需设置的参数过多,针对不同的参数设置,检测结果会发生变化。
本研究采用链码表示图像轮廓,引入相对链码和绝对链码计算轮廓像素点的三点链码和与三点链码差,三点链码和表示边界轮廓特征,三点链码差判定轮廓中的角点。为进一步提高角点检测的正确率,提出邻域最大值法和斜率差值法辨别伪角点并进行去除。
1 基于三点链码和与差的角点检测算法
1.1 基本概念
八邻域链码的定义如图1所示。其中,P表示轮廓中的某个像素点,0~7为该像素点在不同方向的链码值。运用轮廓跟踪算法[7-9]可将轮廓用链码表示。图2所示的轮廓(黑色方框代表轮廓中的像素点),从点A开始按顺时针方向移动时,轮廓的边界链码表示为L=1701765554322。
相对链码为当前点与前一点的链码值之差,当前点与前一点的链码差大于4时,相对链码值为其差值减8。绝对链码为相对链码从起始点开始的累加值,设起始点的绝对链码值为0。当绝对链码从起始点绕轮廓一周后,由于相对链码的累加,其值将增加8,即:
式中:A(N)——轮廓末端点的绝对链码值;
A(1)——轮廓起始点的链码值。
相对链码和绝对链码计算如下:
设C(i)和C(i-1)分别为像素点i和i-1的链码,R(i)为相对链码,A(i)和A(i-1)为绝对链码,则
1.2 三点链码和与三点链码差计算
三点链码和是指当前点与前两点的绝对链码之和,在轮廓边界的局部可以将其近似看作一条直线,表示该点的斜率,其计算如式(3):
对封闭轮廓,计算起始两点的三点链码和时,部分绝对链码值要从末端取,而末端的绝对值比起始点的大8,具体计算如式(4):
根据式(4)得到起始点的三点链码和不一定等于0,为了统一,在计算每个边界点的三点链码和时,将所有点的三点链码和均减去起始点的三点链码和,得到从0开始的三点链码和序列。
三点链码差是指当前点邻域内的三点链码和之差,即:
同理,对封闭轮廓,在计算起始点和末端两点的三点链码和之差时,部分数据要在末端和起始点取,即:
图3为五角星轮廓,图4(a)和图4(b)为五角星轮廓对应的三点链码和与三点链码差曲线图。
三点链码和将轮廓分成24等分,而链码只将轮廓分成8等分。因此,用三点链码和可以更好地表示边界的轮廓特征。在链码和曲线上,直线段的部分对应边界上的直线,倾斜的直线对应边界上的斜线或圆弧,当链码和曲线对应的是圆弧时,曲线上的倾角越小,圆弧的半径就越大,反之则越小。
三点链码差表示两个切线方向的差值,是一个与曲率成正比的量[10]。三点链码差为1,表示两切线方向的夹角为15°[11]。三点链码差曲线中的极值点即为图像轮廓的角点。当边界轮廓沿着逆时针走向时,差值为正的点为凸角点,差值为负的点为凹角点。
1.3 基于邻域最大值和斜率差值的伪角点辨别方法
角点检测中,图像中一些非真实的角点会被误检测为角点,称为伪角点。本文对伪角点的产生原因进行了研究,根据分析结果进行了如下处理。
(1)伪角点出现在真实角点的邻域。对这类伪角点,在检测到某点为角点时,检测其邻域内N个像素点(N一般取3~8)是否还有其他角点,若存在其他角点,则取这N+1个像素中三点链码差的绝对值最大的那一点为真实角点,然后删除其他角点;否则保留该点为真实角点并进行下一角点的检测。
(2)伪角点出现在近似直线的轮廓线段中。对这类伪角点,只需计算相邻两角点与该点的斜率,然后根据斜率差值的绝对值判定该点是否为角点,若斜率差值较小,则该点为伪角点并删除,否则保留该点为真实角点。计算过程如下:
设(xi-1,yi-1)、(xi,yi)、(xi+1,yi+1)分别为像素点i-1、i、i+1的坐标值,ki、ki+1为像素点i-1到i、i到i+1的斜率,ki和ki+1的计算如式(7):
对此类伪角点,判定依据为
式中,δ为一常数,其取值为0~0.2。若则像素点i-1、i、i+1在同一直线上,像素点i为伪角点,将其去除并保留i-1和i+1两个角点;否则,i为真实角点需保存。
在封闭轮廓中,对起始和末端角点进行伪角点检测时,其坐标值应分别从末端和起始点取。设(x1、y1)、(xm、ym)分别为某轮廓角点序列的起始和末端坐标值,则起始角点的斜率计算如式(9):
末端角点的斜率计算如式(10):
1.4 角点检测算法
角点判定方法为
其中u和ν分别代表上下阈值,u值为负,ν值为正。u和ν的大小对角点检测的效果有直接影响。u、ν的值越大,表示对角点的判定越严格,检测到的角点越少;反之,u、ν的值越小,检测到的角点越多,甚至有一些不是角点的点也会被检测为角点。因此,对于u和ν的值一般要根据具体情况进行调整。通常情况下,u、ν的绝对值以1~3为宜。
综合分析,角点检测算法的总流程如图5所示。
2 仿真与分析
本研究以某个剪纸图像轮廓(实际角点数为144个)为例。取角点检测的阈值u=-2,ν=2,N=5,δ=0.1,将其与harris(取harris算法中矩阵的两特征值的比为0.09)、Freeman链码算法比较,检测结果如图6。
仿真结果对比如表1所示。
从表1可以看出,Harris算法检测的角点数为288个,其中真实角点占123个,伪角点数165个;Freeman链码算法检测的角点数为664个,伪角点数多达534个;本算法检测的角点数为189个,其中真实角点126个,占检测角点的66.7%,真实角点的检测率达87.5%,检测效果明显优于传统两个角点检测算法。
3 结束语
针对具有图像处理的数控雕刻系统中的角点检测问题,研究了运用三点链码和与三点链码差检测图像轮廓的角点,并首次应用邻域最大值和斜率差值法去除伪角点。仿真结果表明,本算法计算简单,稳定可靠,可以更有效地检测出图像的真实角点。
[1]邵泽明,朱剑英,王化明.基于SUSAN算法的分层快速角点检测[J].华南理工大学学报:自然科学版,2006,34(7):65-68.
[2]王崴,唐一平,任娟莉,等.一种改进的Harris角点提取算法[J].光学精密工程,2008,16(10):1995-2000.
[3]Ryu J B,Park H H.Log-log scaled harris corner detector[J].Electronicsletters,2010,46(24):1602-1604.
[4]赵万金,龚声蓉,刘纯平,等.一种自适应的Harris角点检测算法[J].计算机工程,2008,34(10):212-214.
[5]Awrangjeb M, Lu G.Robust image corner detection based on the chord-to-point distance accumulation technique[J].Multimedia, IEEE Transactions,2008,10(6):1059-1072.
[6]汪剑,皮佑国,刘明友.基于Freeman链码的汉字图像轮廓曲线拐角点检测方法[J].模式识别与仿真,2009,28(1):88-92.
[7]刘梅华,汪东,柳惠秋.一种改进的轮廓跟踪算法[J].机械设计与制造,2008(5):45-47.
[8]王金川,黄雪梅,郝园.一种改进的医学图像目标轮廓跟踪算法[J].现代制造工程,2012(10):33-36.
[9]陈士金,邓勇.基于链码的轮廓跟踪技术在二值图像中的应用[J].华中理工大学学报,1998,26(12):26-28.
[10]陆宗骐,童韬.链码和在边界形状分析中的应用[J].中国图像图形学报,2002,7(12):1323-1328.
[11]马宁.基于图像的数控雕刻系统研究[D].西安:西安理工大学,2007.
Research on image corner detection oriented to NC engraving
ZHAI Jing-mei,TANG Hui-hua,ZOU Yan-biao
(School of Mechanical and Automotive Engineering,South China University of Technology,Guangzhou 510641,China)
The NC engraving system based on image processing gradually replaces traditional NC engraving.In the NC engraving system,corner detection is an important link.This paper introduces the chain code to express contour,and image corner is detected by using three-chain code sum and three-chain code difference calculated with relative chain codes and absolute chain codes.After that,neighbor maximum and adjacent corner methods were firstly used to eliminate the false corners.Then this paper simulates the algorithm and compares it to other algorithms,the simulation result shows the algorithm has the highest rate of detecting the real corners.
NC engraving;corner detection;chain code;false corner
TP242.2;TP391.411;TP752.1;TP301.6
:A
:1674-5124(2014)04-0094-04
10.11857/j.issn.1674-5124.2014.04.024
2014-02-25;
:2014-04-16
广东省战略性新兴产业项目(2011A091101001)广东省科技计划项目(2012B090600028)中山市科技计划项目(201207A002)
翟敬梅(1967-),女,辽宁鞍山市人,教授,博士,主要从事机器人化自动装备理论与应用研究。