劉志慧
摘 要:自動(dòng)定位橢圓印章實(shí)現(xiàn)的難度在于計(jì)算中心、長(zhǎng)軸、短軸以及長(zhǎng)軸傾角。文中提出一種基于形狀特征的橢圓印章自動(dòng)定位方法,基于集成開(kāi)發(fā)環(huán)境Microsoft Visual Studio 2010,應(yīng)用微軟基礎(chǔ)類(lèi)庫(kù)MFC設(shè)計(jì)交互界面設(shè)計(jì)橢圓印章自動(dòng)定位系統(tǒng)。首先將彩色圖像進(jìn)行預(yù)處理,去除彩色圖像中的無(wú)用信息,然后采用基于曲線(xiàn)弧分割的思想檢測(cè)橢圓,將輪廓從交點(diǎn)處分割成弧段,隨機(jī)采樣取點(diǎn)求出參數(shù)值,準(zhǔn)確定位橢圓印章區(qū)域。該方法從每一個(gè)連續(xù)的輪廓弧段中采樣,使無(wú)效隨機(jī)采樣的概率大大降低。實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)可以有效定位橢圓印章。
關(guān)鍵詞:印章定位;橢圓檢測(cè);曲線(xiàn)弧分割;隨機(jī)采樣
中圖分類(lèi)號(hào):TP391.41 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2018)04-00-03
0 引 言
印章具有權(quán)威性,被人們應(yīng)用于各個(gè)領(lǐng)域。采用人工多角度對(duì)折法可以識(shí)別印章真假,然而這種方法需要借助豐富的經(jīng)驗(yàn)來(lái)判別,檢測(cè)結(jié)果具有很強(qiáng)的主觀(guān)性[1,2]。如何通過(guò)計(jì)算機(jī)快速準(zhǔn)確地識(shí)別印章已成為需要迫切解決的問(wèn)題。利用計(jì)算機(jī)在識(shí)別印章真?zhèn)尾僮髦?,?duì)操作區(qū)域加以限制,以減少無(wú)用信息的干擾[3]。因此,自動(dòng)定位印章作為判斷印章真?zhèn)蔚年P(guān)鍵步驟,直接關(guān)系到判斷結(jié)果的速度和正確性。如何高效地實(shí)現(xiàn)印章的自動(dòng)定位成為識(shí)別印章真?zhèn)呜酱鉀Q的問(wèn)題[4,5]。橢圓印章在日常生活中比較常見(jiàn),鑒于此,本文提出了一種橢圓印章定位方法,并設(shè)計(jì)了橢圓印章自動(dòng)定位系統(tǒng)。該系統(tǒng)可在用戶(hù)干預(yù)較少的情況下借助計(jì)算機(jī)完成橢圓印章的自動(dòng)定位,為識(shí)別印章真?zhèn)巫龊脺?zhǔn)備。
1 橢圓印章定位算法研究
采集到的測(cè)試圖像中,印章區(qū)域和背景、文字相互重疊,主要包括紅色的印章圖像和代碼編號(hào)、灰色或白色的背景、黑色的文字,我們應(yīng)盡可能多地保留印章圖像,去除干擾信息[6,7],因此需要對(duì)原始的印章圖像進(jìn)行預(yù)處理。在Windows平臺(tái)上,基于集成開(kāi)發(fā)環(huán)境Microsoft Visual Studio 2010,使用C++語(yǔ)言,并應(yīng)用微軟基礎(chǔ)類(lèi)庫(kù)MFC設(shè)計(jì)交互界面[8],實(shí)現(xiàn)橢圓印章自動(dòng)定位。
1.1 預(yù)處理
圖像預(yù)處理模塊主要負(fù)責(zé)圖像中紅色分量的提取以及彩色圖像的灰度化、二值化,最終得到細(xì)化的輪廓圖。
首先,將圖像的RGB分量值轉(zhuǎn)化到HSI空間中,給這三個(gè)分量分別設(shè)定合適的閾值?;?HSI 模型對(duì)圖像進(jìn)行初步紅色分量提取,將大部分有用信息提取出來(lái),其中紅色分量色度余弦值大于0.94,紅色的飽和度分量大于20%,紅色的亮度分量大于60%[9]。
其次,基于HSI彩色空間模型提取紅色分量得到彩色圖像,雖然彩色圖像包含豐富的圖像信息,但占用空間較多,同時(shí)也會(huì)增大計(jì)算量,因此對(duì)彩色圖像進(jìn)行灰度化并二值化處理[10]。圖像經(jīng)二值化處理后,目標(biāo)對(duì)象的像素值為1,背景的像素值為0。
最后,基于細(xì)化算法由二值圖像得到細(xì)化的輪廓圖[11]。將輸入圖像中具有一定寬度的線(xiàn)條縮減為寬度是1個(gè)像素的線(xiàn)條,在減少信息量的同時(shí)保留原圖像的拓?fù)浣Y(jié)構(gòu)。
1.2 橢圓印章定位算法基本思想
本文采用基于曲線(xiàn)弧分割的思想檢測(cè)橢圓。根據(jù)輪廓點(diǎn)間的相互連接性對(duì)細(xì)化圖像中的輪廓像素點(diǎn)進(jìn)行跟蹤。跟蹤從起始點(diǎn)開(kāi)始,將輪廓從交點(diǎn)處分割成弧段,直到所有的輪廓被跟蹤完畢。根據(jù)各弧段長(zhǎng)度的比例,確定在每段弧上采樣的次數(shù),在每一個(gè)連續(xù)的輪廓弧段中采樣,求出橢圓參數(shù)。橢圓印章定位主要包括曲線(xiàn)弧分割、隨機(jī)取點(diǎn)求參數(shù)以及確定橢圓位置三部分。
1.2.1 曲線(xiàn)弧分割
分配一個(gè)與細(xì)化圖大小相同的二維數(shù)組記作array。所有的輪廓跟蹤點(diǎn)在array上進(jìn)行標(biāo)記,以防止重復(fù)跟蹤。如果出現(xiàn)極端異常的大輪廓,超出分配內(nèi)存的大小,則將整個(gè)輪廓標(biāo)記為異常輪廓。對(duì)于輪廓過(guò)短的情況,也將其標(biāo)記為異常輪廓。對(duì)于異常輪廓不做進(jìn)一步處理。
曲線(xiàn)弧分割的具體實(shí)現(xiàn)步驟如下:
(1)按從下到上、從左到右的順序掃描輪廓圖,將第一個(gè)像素灰度值為1的點(diǎn)作為起始點(diǎn),新建一個(gè)坐標(biāo)鏈,將此點(diǎn)坐標(biāo)加入坐標(biāo)鏈。
(2) 在array數(shù)組中的相應(yīng)位置進(jìn)行標(biāo)記,以防止重復(fù)跟蹤。
(3)尋找下一相鄰點(diǎn)。按右、右上、上、左上、左、左下、下、右下的順序考察當(dāng)前點(diǎn)八鄰域的8個(gè)方向點(diǎn)。如果當(dāng)前點(diǎn)的八鄰域中連通點(diǎn)個(gè)數(shù)大于2,則說(shuō)明有其他鏈路也通過(guò)該點(diǎn),即輪廓出現(xiàn)分支,將當(dāng)前點(diǎn)作為新的起始點(diǎn)進(jìn)行輪廓跟蹤,轉(zhuǎn)(2);如果當(dāng)前點(diǎn)的八鄰域中連通點(diǎn)個(gè)數(shù)大于0且小于等于2,則說(shuō)明輪廓沒(méi)有出現(xiàn)分支,將八鄰域中像素值第一個(gè)為1的點(diǎn)置為當(dāng)前點(diǎn),若當(dāng)前點(diǎn)和起始點(diǎn)重合,則表明已經(jīng)轉(zhuǎn)了一圈,將當(dāng)前點(diǎn)在二維數(shù)組array的對(duì)應(yīng)位置進(jìn)行標(biāo)記,防止重復(fù)跟蹤,轉(zhuǎn)(4)。若當(dāng)前點(diǎn)沒(méi)有與起始點(diǎn)重合,則將此點(diǎn)坐標(biāo)加入坐標(biāo)鏈,鏈路長(zhǎng)度加1,轉(zhuǎn)(2);如果當(dāng)前點(diǎn)的八鄰域中連通點(diǎn)個(gè)數(shù)為0,則轉(zhuǎn)(4)。
(4) 輪廓圖中若仍存在像素灰度值為1且未被標(biāo)記過(guò)的點(diǎn),則轉(zhuǎn)(1);否則結(jié)束,輸出弧段集合。
通過(guò)上述步驟可以將輪廓從交點(diǎn)處分開(kāi)。圖1包括兩個(gè)重疊橢圓,黑色點(diǎn)表示相交點(diǎn),輪廓被分為四個(gè)曲線(xiàn)段,分別由四種顏色表示。圖2所示為曲線(xiàn)弧分割應(yīng)用于實(shí)際的橢圓印章圖像效果圖。
1.2.2 隨機(jī)取點(diǎn)求橢圓參數(shù)
橢圓的一般方程為Ax2+Bxy+Cy2+Dx+Ey+1=0,橢圓參數(shù)與中心、長(zhǎng)軸、短軸以及長(zhǎng)軸傾角之間的關(guān)系見(jiàn)式(1):
根據(jù)各弧段長(zhǎng)度的比例,確定在每段弧上采樣的次數(shù),隨機(jī)取點(diǎn)的次數(shù)與弧段長(zhǎng)度成正比,每條弧段上隨機(jī)取點(diǎn)的方法見(jiàn)表1所列。
由于橢圓包含5個(gè)未知參數(shù),所以每次采樣都要隨機(jī)取5個(gè)非共線(xiàn)點(diǎn)。將這5個(gè)點(diǎn)(xi,yi)(i=1,2,3,4,5,6)帶入橢圓一般方程,構(gòu)建線(xiàn)性方程組(2),(3)及(4):
其中,α=[A B C D E]T 。只有當(dāng)系數(shù)矩陣對(duì)應(yīng)的行列式|R|≠0時(shí),原方程組才有唯一解,采用高斯消元法解方程組求出系數(shù)A,B,C,D,E,進(jìn)而由式(1)求得中心、長(zhǎng)短軸、長(zhǎng)軸傾角以及離心率。若|R|=0,則重新采樣。
1.2.3 確定橢圓位置
統(tǒng)計(jì)參數(shù)出現(xiàn)次數(shù)。橢圓累計(jì)函數(shù)定義如下:
2 系統(tǒng)測(cè)試與結(jié)果分析
基于集成開(kāi)發(fā)環(huán)境Microsoft Visual Studio 2010,使用C++語(yǔ)言,應(yīng)用微軟基礎(chǔ)類(lèi)庫(kù)MFC與文檔-視圖結(jié)構(gòu)設(shè)計(jì)交互界面。類(lèi)CmainFrame是系統(tǒng)的框架類(lèi),負(fù)責(zé)完成窗口布局管理,運(yùn)用MFC類(lèi)庫(kù)中的CSplitterWnd類(lèi)封裝系統(tǒng)窗口所需功能,通過(guò)CreateStatic()函數(shù)創(chuàng)建窗口,CreateView()函數(shù)為每個(gè)窗口創(chuàng)建視圖類(lèi)CFormView。選擇文件功能由類(lèi)CFileDialog實(shí)現(xiàn),ImageFileReader類(lèi)對(duì)象接收文件的路徑,完成圖像讀入,之后返回一個(gè)指向文件的指針。印章定位與配準(zhǔn)系統(tǒng)整體界面如圖4所示。
本文設(shè)計(jì)的橢圓印章自動(dòng)定位系統(tǒng)中需要的圖片通過(guò)掃描儀掃描得到。系統(tǒng)功能測(cè)試分為兩部分,分別為預(yù)處理模塊和橢圓印章定位模塊。
(1)預(yù)處理功能模塊
該模塊主要用于提取輸入圖像中的紅色分量,將圖像灰度化、二值化并細(xì)化后得到骨架圖。紅色分量提取測(cè)試效果如圖5所示。其中(a)為輸入的RGB彩色印章測(cè)試圖像,(b)為提取紅色像素點(diǎn)后的效果圖。將彩色圖像灰度化并二值化,測(cè)試效果如圖6所示。圖像細(xì)化測(cè)試效果如圖7所示。
預(yù)處理功能可去除測(cè)試圖像中的無(wú)用信息,基于印章的顏色特性提取出有用信息,將彩色圖像轉(zhuǎn)化為二值圖像,并得到細(xì)化的骨架圖,減少圖像存儲(chǔ)空間,以便后續(xù)操作。從上述測(cè)試結(jié)果圖可以看出,測(cè)試圖像的背景較為復(fù)雜,含有不同顏色的文字圖標(biāo),紅色像素點(diǎn)除印章外,還包括圖標(biāo)、底紋等。點(diǎn)擊相應(yīng)按鈕可以提取出原測(cè)試圖中的所有紅色像素點(diǎn)。二值圖像較為準(zhǔn)確地將圖像像素點(diǎn)分為前景和背景?;诩?xì)化算法將二值圖像轉(zhuǎn)化為輪廓寬度為1的細(xì)化圖像。
(2)印章定位功能模塊
該模塊的目標(biāo)是計(jì)算出參數(shù),基于細(xì)化的骨架圖準(zhǔn)確檢測(cè)出橢圓印章在圖像中的具體位置。橢圓印章定位測(cè)試效果如圖8所示,印章在圖中所示的方框區(qū)域內(nèi)。
3 結(jié) 語(yǔ)
本文提出了橢圓印章自動(dòng)定位方法,通過(guò)對(duì)系統(tǒng)各功能模塊展開(kāi)詳細(xì)測(cè)試,驗(yàn)證該系統(tǒng)功能的正確性。系統(tǒng)能夠有效提取測(cè)試圖像中的紅色分量,在灰度圖像上定位出橢圓印章所在的具體位置,減小后續(xù)處理區(qū)域的面積,對(duì)于提高速度、簡(jiǎn)化算法具有重要意義,為印章真?zhèn)螞Q策打下良好的基礎(chǔ),具有一定的應(yīng)用價(jià)值。
參考文獻(xiàn)
[1]魏兆兵,魏夢(mèng)雅.企業(yè)印章管理中的法律風(fēng)險(xiǎn)防范[J].秘書(shū)之友, 2013, 4(7): 12-13.
[2]趙雅麗.淺析單位印章的規(guī)范化管理[J].商場(chǎng)現(xiàn)代化, 2012,6(26): 180.
[3]陳蕊麗.淺談偽造印章的犯罪特點(diǎn)及防偽措施[J].中國(guó)品牌與防偽,2004,8(11): 9-12.
[4]秦開(kāi)懷,王海潁,鄭輯濤.一種基于Hough變換的圓和矩形的快速檢測(cè)方法[J].中國(guó)圖象圖形學(xué)報(bào), 2010, 15(1):109-115.
[5] PRASAD D K, LEUNG M K. Edge curvature and convexity base ellipse detection method[J]. Pattern recognition, 2012, 45(9): 3204-3221.
[6]何瑾,劉鐵根,周怡潔,等.基于邊緣差異的印鑒自動(dòng)鑒別[J].儀器儀表學(xué)報(bào),2010,31(1): 85-91.
[7] BASALAMAH S. Histogram based circle detection[J].International journal of computer science and network security,2012,12(8): 40-43.
[8]張錚,王艷平,薛桂香,等.數(shù)字圖像處理與機(jī)器視覺(jué)-Visual C++與Matlab實(shí)現(xiàn)[M].北京:人民郵電出版社,2014.
[9]何瑾.金融印鑒真?zhèn)巫R(shí)別新方法研究[D].天津:天津大學(xué), 2010.
[10] BARWICK, SHANE D. Very fast best-fit circular and elliptical boundaries by chord data[J].IEEE Trans. Pattern analysis and machine intelligence,2009,31(6): 1147-1152.
[11]李楠楠,盧榮勝,李帥.基于邊界曲線(xiàn)弧分割的多橢圓檢測(cè)[J].計(jì)算機(jī)應(yīng)用,2011, 31(7):1853-1855.