鄭 遂,瑚 琦,高鵬飛,吳衛(wèi)軍
(上海理工大學(xué) 光電信息與計算機學(xué)院,上海 200093)
在印刷工業(yè)中,印刷網(wǎng)點(見圖1,以下簡稱網(wǎng)點)是印刷品的基本單元。它在印刷工業(yè)中起到?jīng)Q定印品顏色、層次和圖像輪廓的作用。網(wǎng)點的主要特征參數(shù)有網(wǎng)點大小、網(wǎng)點間距和網(wǎng)點角度。能否準確選取合適的網(wǎng)點參數(shù)決定了印品質(zhì)量的好壞。
傳統(tǒng)的網(wǎng)點參數(shù)測量方法是采用光學(xué)密度計。隨著數(shù)字圖像處理技術(shù)的發(fā)展,圖像處理算法理論上可以快速得到網(wǎng)點的參數(shù)[1]。因此,基于嵌入式平臺的網(wǎng)點測量儀可以用圖像處理的算法得到網(wǎng)點的參數(shù),從而取代了傳統(tǒng)網(wǎng)點測量儀器。網(wǎng)點圖像的處理過程分為圖像預(yù)處理和圖像識別,而預(yù)處理的第一步是對采集到的網(wǎng)點圖進行二值化處理。
二值化是將圖像的灰度值置成0 或255 的過程,即選擇一定的灰度值作為二值化閾值,將圖像中大于閾值的像素置為白色,小于閾值的像素置為黑色。二值化主要有全局閾值法、局部閾值自適應(yīng)法和基于方向信息的二值化方法[2]。本文在分析上述算法的基礎(chǔ)上,結(jié)合網(wǎng)點圖的特點,提出一種基于直方圖凹度分析的二值化閾值算法,即利用數(shù)學(xué)求導(dǎo)的思想計算二值化閾值。實驗證明,該算法能比較準確地求出網(wǎng)點圖像的二值化閾值。
圖1 印刷網(wǎng)點放大圖Fig.1 Enlarged print dot image
測量儀共由以下三部分組成:(1)網(wǎng)點圖像的采集;(2)網(wǎng)點圖像的數(shù)字圖像處理和參數(shù)計算;(3)參數(shù)計算結(jié)果顯示。
測量儀的整體框圖如圖2所示。在系統(tǒng)中,圖像的采集由CMOS圖像傳感器完成,網(wǎng)點圖的處理及網(wǎng)點參數(shù)的計算由ARM 核心板完成。當系統(tǒng)初始化完成后,可以通過CMOS圖像傳感器采集印品的顯微數(shù)字圖像,一幀圖像數(shù)據(jù)采集完成后在屏幕上顯示,圖像數(shù)據(jù)則由MCU 通過一定的算法處理,最后得到網(wǎng)點的參數(shù):網(wǎng)點大小、網(wǎng)點間距和網(wǎng)點角度。網(wǎng)點圖像處理的算法包括圖像的灰度化、二值化、去噪、網(wǎng)點參數(shù)計算,并將結(jié)果顯示在GUI上[3]。
圖2 網(wǎng)點測量儀原理框圖Fig.2 Schematic diagram of print dot measuring instrument
在圖像處理部分,二值化是圖像預(yù)處理的關(guān)鍵,二值化準確與否,將影響后期參數(shù)計算的精度,進而影響網(wǎng)點參數(shù)識別的精度。
灰度直方圖是用于表達圖像灰度分布情況的統(tǒng)計圖表。其橫坐標是灰度值r,縱坐標是出現(xiàn)這個灰度值的概率密度h(r)(對連續(xù)圖像f(x,y)而言),或者是出現(xiàn)這個灰度的概率值h(r)(對數(shù)字圖像f(m,n)而言)[4]。
由圖1可以看出,印刷網(wǎng)點圖有以下特點:(1)由兩種顏色組成:一種是背景色,一種是網(wǎng)點顏色;(2)由大小相近間距相同的點組成,并且點分布在互相垂直的兩個方向;(3)不同的網(wǎng)點圖的網(wǎng)點面積大小不同。
運用MATLAB軟件的imhist()函數(shù)得到圖3所示的灰度直方圖,橫坐標是灰度級別r,縱坐標是該灰度級出現(xiàn)的個數(shù)h(r)。
灰度直方圖能很好地反映圖像的總體特征。由圖3可以看出,印刷網(wǎng)點圖的灰度直方圖由明顯的雙峰組成,一個代表背景,一個代表目標點,即印刷網(wǎng)點。因此,二值化閾值如果選擇在雙峰之間的“谷”處,可以將網(wǎng)點圖二值化成只有背景和目標點的黑白圖像[5]。
灰度直方圖是一種離散的分布圖,其包絡(luò)線是一條連續(xù)的曲線,因此對直方圖的“谷”的尋找便可以轉(zhuǎn)化為求其包絡(luò)線h(r)極小值的問題。根據(jù)高等數(shù)學(xué)函數(shù)極值的有關(guān)問題,曲線h(r)中的極小值點應(yīng)同時滿足下列條件:
圖3 印刷網(wǎng)點圖的灰度直方圖Fig.3 Gray histogram of print dot image
滿足上述條件的極小值點所對應(yīng)的灰度級即可作為分割閾值[6]。
但是,上述方法需要用到數(shù)值逼近等計算,算法復(fù)雜度高,不利于在嵌入式平臺中的實現(xiàn)。為了在離散的直方圖上尋找到“谷”所對應(yīng)的灰度值,采用以下離散求導(dǎo)的方法來確定二值化閾值。
一般灰度直方圖起止處灰度級的像素個數(shù)很少,將像素個數(shù)h(r)小于一定值的灰度忽略(即h(r)置0)。這樣做的目的在于減小這些小量像素灰度級對于整體閾值計算的影響,從而提高閾值的準確度。
設(shè)經(jīng)過上述處理后像素個數(shù)不為0的灰度級范圍為m~n,灰度值r對應(yīng)的像素個數(shù)為h(r)。首先,比較各灰度的像素數(shù),找到h(r)最大值對應(yīng)的灰度級Gmax,同時得到灰度級出現(xiàn)個數(shù)不為零的起止灰度級Gstart和Gend,如圖4所示,Gmax,Gstart和Gend的位置在圖中示出:
Ds表示Gstart偏離Gmax的距離,De表示Gend偏離Gmax的距離,根據(jù)式(3)和式(4)可以計算出Ds和De的值。由灰度直方圖的特征可以看出,閾值在偏離距離較大的一邊的灰度范圍內(nèi)的“谷”處,圖4的Ds大于De的值,因此閾值灰度在Gstart與Gmax之間。
經(jīng)過上述步驟得到的閾值在Gstart與Gmax之間,為了進一步確定閾值的位置,對離散的灰度直方圖h(r)一階求導(dǎo),求導(dǎo)規(guī)則為:Gstart與Gmax之間,若h(r+1)-h(huán)(r)大于0,則標記為1;若h(r+1)-h(huán)(r)小于0,則標記為-1;若h(r+1)-h(huán)(r)等于0,則標記為0。
灰度級和像素個數(shù)構(gòu)成一一對應(yīng)的關(guān)系,如表1為列出的局部數(shù)值,在Gstart和Gmax之間,一階求導(dǎo)由式(1)得出,結(jié)果見表1:
圖4 Gmax、Gstart、Gend位置示意圖Fig.4 Positions of Gmax,Gstart,Gendon gray histogram
表1 求導(dǎo)過程的局部數(shù)據(jù)Tab.1 Partial data of derivation
由一階求導(dǎo)結(jié)果可以看出,除了少數(shù)虛假“谷”對一階求導(dǎo)結(jié)果產(chǎn)生錯誤的影響,一階求導(dǎo)的總體趨勢是正確的,即在Gstart與Gmax之間,上升趨勢的一階求導(dǎo)結(jié)果全為1;波峰處的一階求導(dǎo)結(jié)果為1和-1相間的數(shù);下降趨勢的一階求導(dǎo)結(jié)果是中間偶有1出現(xiàn),但不影響總體趨勢;波谷處的數(shù)據(jù)為“谷”處的灰度級別的一階求導(dǎo)結(jié)果,同樣出現(xiàn)1和-1交替出現(xiàn);上升趨勢的數(shù)據(jù)是直到Gmax附近的一階求導(dǎo)結(jié)果。因此可以根據(jù)一階求導(dǎo)來判定灰度級像素數(shù)的趨勢。
由于一階求導(dǎo)僅求出像素整體的變化趨勢,并不能最終確定“谷”所對應(yīng)的灰度值的位置。因此,再利用二階求導(dǎo),精確求出閾值所在的灰度范圍。
用式(2)對灰度直方圖h(r)進行二階求導(dǎo),求導(dǎo)結(jié)果如表1所示,其中的數(shù)據(jù)出現(xiàn)了幾種數(shù)值特點:
(1)連續(xù)的0(上升趨勢的二階求導(dǎo)數(shù)據(jù));
(2)2,-2成對交替出現(xiàn)(波峰處、下降趨勢、波谷處的二階求導(dǎo)數(shù)據(jù));
(3)孤立的2或-2(上升趨勢的二階求導(dǎo)數(shù)據(jù));
連續(xù)出現(xiàn)0,表明像素數(shù)隨灰度值增加單調(diào)遞增或遞減;交替出現(xiàn)2,-2時,若只出現(xiàn)一對孤立的2或者-2,則表明該處有虛假“谷”,此時對應(yīng)灰度的二階求導(dǎo)可以忽略,在第5行置0;若連續(xù)交替出現(xiàn)2,-2,表明像素數(shù)在波峰或波谷,呈現(xiàn)鋸齒狀的包絡(luò)特點;若只有一個-2,該點為變化趨勢的轉(zhuǎn)折點。將虛假“谷”去除后的二階求導(dǎo)值如表1所示。
最后,分析表1的數(shù)據(jù),閾值在連續(xù)出現(xiàn)2,-2 的區(qū)域,以該區(qū)域的中間值(表中的中間灰度值為152)作為二值化的閾值。
將本文的二值化算法與MATLAB的二值化函數(shù)graythresh()運算結(jié)果進行比較,實驗表明,對于網(wǎng)點較大的圖像(見圖5(a)),該算法求出的閾值可以和graythresh()函數(shù)求出的閾值一致,能準確地得到二值化圖像(見圖5(b)、圖5(c));對于網(wǎng)點較小的圖像(見圖6(a)),該算法優(yōu)于MATLAB的二值化函數(shù)graythresh()(見圖6(b)、圖6(c))。
二值化閾值的求解是網(wǎng)點圖像處理關(guān)鍵的一步,其結(jié)果準確與否將直接影響網(wǎng)點參數(shù)測量的準確度。采用已有的二值化算法雖然可以將網(wǎng)點圖像二值化,但結(jié)果并不準確,將導(dǎo)致網(wǎng)點面積計算的不可靠。因此,本文在直方圖凹度分析法的基礎(chǔ)上,用離散數(shù)學(xué)求導(dǎo)的方法得到直方圖“谷”的閾值作為二值化閾值,比較準確地實現(xiàn)了網(wǎng)點圖像的二值化。通過與MATLAB 二值化函數(shù)graythresh()的結(jié)果進行實驗對比,證明了該方法不僅可靠,而且減少了數(shù)據(jù)運算量,加快運算速度。
圖5 網(wǎng)點面積較大時直方圖凹度分析法與graythresh()的二值化結(jié)果比較Fig.5 Comparision of big print-dot binarizations between histogram concavity analysis and graythresh()
圖6 網(wǎng)點面積較小時直方圖凹度分析法與graythresh()的二值化結(jié)果比較Fig.6 Comparision of small print-dot binarizations between histogram concavity analysis and graythresh()
在直方圖凹度分析的基礎(chǔ)上,運用數(shù)學(xué)方法對數(shù)字圖像進行二值化的思想可以提高二值化的速度,對于快速算法的研究很有必要。本文的二值化算法是基于網(wǎng)點圖像的算法,并不適用于背景復(fù)雜的數(shù)字圖像二值化的應(yīng)用,因為此類圖像的灰度直方圖不一定有雙峰。總之,運用數(shù)學(xué)方法二值化,可以方便利用C語言實現(xiàn)。在工業(yè)儀器儀表開發(fā)方面有重要的啟發(fā)。
[1] 劉浩學(xué).印刷網(wǎng)點面積的測量與計算[J].北京印刷學(xué)院學(xué)報,2000,8(4):8-13.
[2] 彭彥平,馬步莊,徐錦林.網(wǎng)點面積檢測算法的比較研究[J].包裝工程,2006,27(1):76-78.
[3] 李松松,瑚 琦,章慧賢,等.基于數(shù)字圖像處理方法的印刷網(wǎng)點測量系統(tǒng)設(shè)計[J].光學(xué)儀器,2009,31(5):43-47.
[4] 王耀南,李樹濤,毛建旭.計算機圖像處理與識別技術(shù)[M].北京:高等教育出版社,2005:65-71.
[5] 毛翠麗,馬衛(wèi)紅,盂立莊,等.基于數(shù)字圖像處理的火焰長度計算方法[J].光學(xué)儀器,2005,29(1):27-31.
[6] 龔聲蓉,劉純平,王 強.數(shù)字圖像處理與分析[M].北京:清華大學(xué)出版社,2006:177-186.