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