翟敬梅,唐會華,鄒焱飚
(華南理工大學(xué)機(jī)械與汽車工程學(xué)院,廣東 廣州 510641)
面向數(shù)控雕刻的圖像角點(diǎn)檢測研究
翟敬梅,唐會華,鄒焱飚
(華南理工大學(xué)機(jī)械與汽車工程學(xué)院,廣東 廣州 510641)
基于圖像處理的數(shù)控雕刻中,角點(diǎn)檢測是圖像處理的重要環(huán)節(jié),該文通過相對鏈碼和絕對鏈碼引入三點(diǎn)鏈碼和與三點(diǎn)鏈碼差判定角點(diǎn),提出鄰域最大值和相鄰角點(diǎn)斜率差值辨別偽角點(diǎn)的方法。通過剪紙圖像對算法進(jìn)行仿真并與其他算法比較,結(jié)果表明該算法檢測到的真實(shí)角點(diǎn)占檢測角點(diǎn)的比率大幅提高。
數(shù)控雕刻;角點(diǎn)檢測;鏈碼;偽角點(diǎn)
傳統(tǒng)手工雕刻勞動強(qiáng)度大,耗費(fèi)時(shí)間長,成品率低,無法批量生產(chǎn),而且只有技藝高超的人才能雕刻出完美的藝術(shù)品。具有圖像處理的數(shù)控雕刻系統(tǒng)很好地解決了這一問題,其只需獲取雕刻工藝品的原始圖像,經(jīng)過一系列圖像處理操作,通過數(shù)控設(shè)備加工出來,從而大大提高產(chǎn)品的質(zhì)量和效率。
在雕刻系統(tǒng)圖像處理中,角點(diǎn)檢測是很重要的一環(huán)。角點(diǎn)是圖像的重要局部特征[1],如對角點(diǎn)處理不當(dāng),會使圖像的棱角模糊不清。目前,許多研究者對角點(diǎn)做了研究。王崴等[2]對Harris算法進(jìn)行了改進(jìn),改進(jìn)后的算法能夠準(zhǔn)確定位T型和斜T型角點(diǎn),并且提高了角點(diǎn)的檢測速度,但該算法沒有考慮T型和斜T型之外的角點(diǎn)檢測情況。Ryu J.B.等[3]指出Harris算法對T、Y、X型角點(diǎn)的定位精度差,提出運(yùn)用Log-log對數(shù)變換提高角點(diǎn)的定位精度。趙萬金等[4]針對Harris算法的不足,提出了一種自適應(yīng)的改進(jìn)算法,經(jīng)改進(jìn)后算法檢測到的角點(diǎn)分布更加均勻。Awrangjeb等[5]提出多曲率積弦到點(diǎn)距離累加的角點(diǎn)檢測算法,該算法能減少噪聲對角點(diǎn)檢測的影響,但易去除角度較大或較小的真實(shí)角點(diǎn)。汪劍等[6]
用Freeman鏈碼表示輪廓,根據(jù)差別碼判定角點(diǎn),并用曲率極大值法去除偽角點(diǎn),取得了一定效果,但該方法所需設(shè)置的參數(shù)過多,針對不同的參數(shù)設(shè)置,檢測結(jié)果會發(fā)生變化。
本研究采用鏈碼表示圖像輪廓,引入相對鏈碼和絕對鏈碼計(jì)算輪廓像素點(diǎn)的三點(diǎn)鏈碼和與三點(diǎn)鏈碼差,三點(diǎn)鏈碼和表示邊界輪廓特征,三點(diǎn)鏈碼差判定輪廓中的角點(diǎn)。為進(jìn)一步提高角點(diǎn)檢測的正確率,提出鄰域最大值法和斜率差值法辨別偽角點(diǎn)并進(jìn)行去除。
1.1 基本概念
八鄰域鏈碼的定義如圖1所示。其中,P表示輪廓中的某個(gè)像素點(diǎn),0~7為該像素點(diǎn)在不同方向的鏈碼值。運(yùn)用輪廓跟蹤算法[7-9]可將輪廓用鏈碼表示。圖2所示的輪廓(黑色方框代表輪廓中的像素點(diǎn)),從點(diǎn)A開始按順時(shí)針方向移動時(shí),輪廓的邊界鏈碼表示為L=1701765554322。
相對鏈碼為當(dāng)前點(diǎn)與前一點(diǎn)的鏈碼值之差,當(dāng)前點(diǎn)與前一點(diǎn)的鏈碼差大于4時(shí),相對鏈碼值為其差值減8。絕對鏈碼為相對鏈碼從起始點(diǎn)開始的累加值,設(shè)起始點(diǎn)的絕對鏈碼值為0。當(dāng)絕對鏈碼從起始點(diǎn)繞輪廓一周后,由于相對鏈碼的累加,其值將增加8,即:
式中:A(N)——輪廓末端點(diǎn)的絕對鏈碼值;
A(1)——輪廓起始點(diǎn)的鏈碼值。
相對鏈碼和絕對鏈碼計(jì)算如下:
設(shè)C(i)和C(i-1)分別為像素點(diǎn)i和i-1的鏈碼,R(i)為相對鏈碼,A(i)和A(i-1)為絕對鏈碼,則
1.2 三點(diǎn)鏈碼和與三點(diǎn)鏈碼差計(jì)算
三點(diǎn)鏈碼和是指當(dāng)前點(diǎn)與前兩點(diǎn)的絕對鏈碼之和,在輪廓邊界的局部可以將其近似看作一條直線,表示該點(diǎn)的斜率,其計(jì)算如式(3):
對封閉輪廓,計(jì)算起始兩點(diǎn)的三點(diǎn)鏈碼和時(shí),部分絕對鏈碼值要從末端取,而末端的絕對值比起始點(diǎn)的大8,具體計(jì)算如式(4):
根據(jù)式(4)得到起始點(diǎn)的三點(diǎn)鏈碼和不一定等于0,為了統(tǒng)一,在計(jì)算每個(gè)邊界點(diǎn)的三點(diǎn)鏈碼和時(shí),將所有點(diǎn)的三點(diǎn)鏈碼和均減去起始點(diǎn)的三點(diǎn)鏈碼和,得到從0開始的三點(diǎn)鏈碼和序列。
三點(diǎn)鏈碼差是指當(dāng)前點(diǎn)鄰域內(nèi)的三點(diǎn)鏈碼和之差,即:
同理,對封閉輪廓,在計(jì)算起始點(diǎn)和末端兩點(diǎn)的三點(diǎn)鏈碼和之差時(shí),部分?jǐn)?shù)據(jù)要在末端和起始點(diǎn)取,即:
圖3為五角星輪廓,圖4(a)和圖4(b)為五角星輪廓對應(yīng)的三點(diǎn)鏈碼和與三點(diǎn)鏈碼差曲線圖。
三點(diǎn)鏈碼和將輪廓分成24等分,而鏈碼只將輪廓分成8等分。因此,用三點(diǎn)鏈碼和可以更好地表示邊界的輪廓特征。在鏈碼和曲線上,直線段的部分對應(yīng)邊界上的直線,傾斜的直線對應(yīng)邊界上的斜線或圓弧,當(dāng)鏈碼和曲線對應(yīng)的是圓弧時(shí),曲線上的傾角越小,圓弧的半徑就越大,反之則越小。
三點(diǎn)鏈碼差表示兩個(gè)切線方向的差值,是一個(gè)與曲率成正比的量[10]。三點(diǎn)鏈碼差為1,表示兩切線方向的夾角為15°[11]。三點(diǎn)鏈碼差曲線中的極值點(diǎn)即為圖像輪廓的角點(diǎn)。當(dāng)邊界輪廓沿著逆時(shí)針走向時(shí),差值為正的點(diǎn)為凸角點(diǎn),差值為負(fù)的點(diǎn)為凹角點(diǎn)。
1.3 基于鄰域最大值和斜率差值的偽角點(diǎn)辨別方法
角點(diǎn)檢測中,圖像中一些非真實(shí)的角點(diǎn)會被誤檢測為角點(diǎn),稱為偽角點(diǎn)。本文對偽角點(diǎn)的產(chǎn)生原因進(jìn)行了研究,根據(jù)分析結(jié)果進(jìn)行了如下處理。
(1)偽角點(diǎn)出現(xiàn)在真實(shí)角點(diǎn)的鄰域。對這類偽角點(diǎn),在檢測到某點(diǎn)為角點(diǎn)時(shí),檢測其鄰域內(nèi)N個(gè)像素點(diǎn)(N一般取3~8)是否還有其他角點(diǎn),若存在其他角點(diǎn),則取這N+1個(gè)像素中三點(diǎn)鏈碼差的絕對值最大的那一點(diǎn)為真實(shí)角點(diǎn),然后刪除其他角點(diǎn);否則保留該點(diǎn)為真實(shí)角點(diǎn)并進(jìn)行下一角點(diǎn)的檢測。
(2)偽角點(diǎn)出現(xiàn)在近似直線的輪廓線段中。對這類偽角點(diǎn),只需計(jì)算相鄰兩角點(diǎn)與該點(diǎn)的斜率,然后根據(jù)斜率差值的絕對值判定該點(diǎn)是否為角點(diǎn),若斜率差值較小,則該點(diǎn)為偽角點(diǎn)并刪除,否則保留該點(diǎn)為真實(shí)角點(diǎn)。計(jì)算過程如下:
設(shè)(xi-1,yi-1)、(xi,yi)、(xi+1,yi+1)分別為像素點(diǎn)i-1、i、i+1的坐標(biāo)值,ki、ki+1為像素點(diǎn)i-1到i、i到i+1的斜率,ki和ki+1的計(jì)算如式(7):
對此類偽角點(diǎn),判定依據(jù)為
式中,δ為一常數(shù),其取值為0~0.2。若則像素點(diǎn)i-1、i、i+1在同一直線上,像素點(diǎn)i為偽角點(diǎn),將其去除并保留i-1和i+1兩個(gè)角點(diǎn);否則,i為真實(shí)角點(diǎn)需保存。
在封閉輪廓中,對起始和末端角點(diǎn)進(jìn)行偽角點(diǎn)檢測時(shí),其坐標(biāo)值應(yīng)分別從末端和起始點(diǎn)取。設(shè)(x1、y1)、(xm、ym)分別為某輪廓角點(diǎn)序列的起始和末端坐標(biāo)值,則起始角點(diǎn)的斜率計(jì)算如式(9):
末端角點(diǎn)的斜率計(jì)算如式(10):
1.4 角點(diǎn)檢測算法
角點(diǎn)判定方法為
其中u和ν分別代表上下閾值,u值為負(fù),ν值為正。u和ν的大小對角點(diǎn)檢測的效果有直接影響。u、ν的值越大,表示對角點(diǎn)的判定越嚴(yán)格,檢測到的角點(diǎn)越少;反之,u、ν的值越小,檢測到的角點(diǎn)越多,甚至有一些不是角點(diǎn)的點(diǎn)也會被檢測為角點(diǎn)。因此,對于u和ν的值一般要根據(jù)具體情況進(jìn)行調(diào)整。通常情況下,u、ν的絕對值以1~3為宜。
綜合分析,角點(diǎn)檢測算法的總流程如圖5所示。
本研究以某個(gè)剪紙圖像輪廓(實(shí)際角點(diǎn)數(shù)為144個(gè))為例。取角點(diǎn)檢測的閾值u=-2,ν=2,N=5,δ=0.1,將其與harris(取harris算法中矩陣的兩特征值的比為0.09)、Freeman鏈碼算法比較,檢測結(jié)果如圖6。
仿真結(jié)果對比如表1所示。
從表1可以看出,Harris算法檢測的角點(diǎn)數(shù)為288個(gè),其中真實(shí)角點(diǎn)占123個(gè),偽角點(diǎn)數(shù)165個(gè);Freeman鏈碼算法檢測的角點(diǎn)數(shù)為664個(gè),偽角點(diǎn)數(shù)多達(dá)534個(gè);本算法檢測的角點(diǎn)數(shù)為189個(gè),其中真實(shí)角點(diǎn)126個(gè),占檢測角點(diǎn)的66.7%,真實(shí)角點(diǎn)的檢測率達(dá)87.5%,檢測效果明顯優(yōu)于傳統(tǒng)兩個(gè)角點(diǎn)檢測算法。
針對具有圖像處理的數(shù)控雕刻系統(tǒng)中的角點(diǎn)檢測問題,研究了運(yùn)用三點(diǎn)鏈碼和與三點(diǎn)鏈碼差檢測圖像輪廓的角點(diǎn),并首次應(yīng)用鄰域最大值和斜率差值法去除偽角點(diǎn)。仿真結(jié)果表明,本算法計(jì)算簡單,穩(wěn)定可靠,可以更有效地檢測出圖像的真實(shí)角點(diǎn)。
[1]邵澤明,朱劍英,王化明.基于SUSAN算法的分層快速角點(diǎn)檢測[J].華南理工大學(xué)學(xué)報(bào):自然科學(xué)版,2006,34(7):65-68.
[2]王崴,唐一平,任娟莉,等.一種改進(jìn)的Harris角點(diǎn)提取算法[J].光學(xué)精密工程,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]趙萬金,龔聲蓉,劉純平,等.一種自適應(yīng)的Harris角點(diǎn)檢測算法[J].計(jì)算機(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鏈碼的漢字圖像輪廓曲線拐角點(diǎn)檢測方法[J].模式識別與仿真,2009,28(1):88-92.
[7]劉梅華,汪東,柳惠秋.一種改進(jìn)的輪廓跟蹤算法[J].機(jī)械設(shè)計(jì)與制造,2008(5):45-47.
[8]王金川,黃雪梅,郝園.一種改進(jìn)的醫(yī)學(xué)圖像目標(biāo)輪廓跟蹤算法[J].現(xiàn)代制造工程,2012(10):33-36.
[9]陳士金,鄧勇.基于鏈碼的輪廓跟蹤技術(shù)在二值圖像中的應(yīng)用[J].華中理工大學(xué)學(xué)報(bào),1998,26(12):26-28.
[10]陸宗騏,童韜.鏈碼和在邊界形狀分析中的應(yīng)用[J].中國圖像圖形學(xué)報(bào),2002,7(12):1323-1328.
[11]馬寧.基于圖像的數(shù)控雕刻系統(tǒng)研究[D].西安:西安理工大學(xué),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
廣東省戰(zhàn)略性新興產(chǎn)業(yè)項(xiàng)目(2011A091101001)廣東省科技計(jì)劃項(xiàng)目(2012B090600028)中山市科技計(jì)劃項(xiàng)目(201207A002)
翟敬梅(1967-),女,遼寧鞍山市人,教授,博士,主要從事機(jī)器人化自動裝備理論與應(yīng)用研究。