【摘要】二維碼圖像數(shù)據(jù)碼細小瑣碎,難以與背景區(qū)分開。提出一種針對彩色二維碼圖像的二值化方法,它以迭代法求取自適應性閾值為基礎(chǔ),將它與背景減法相結(jié)合,對減法結(jié)果進行分區(qū)處理。實驗結(jié)果表明,本方法能得到較好的二值化結(jié)果,對二維碼圖像的提取具有良好的適應性。
【關(guān)鍵詞】彩色二維碼;圖像二值化;背景減法;形態(tài)學開運算
1、引言
對常用的圖像二值化方法比如Niblack法、Otus法(最大類間差法)、Bernsen法等進行總結(jié)。用上述二值化對日常生活的彩色二維碼進行圖像處理,發(fā)現(xiàn)不足并提出一種以迭代法為基礎(chǔ)的圖像二值化的新方法流程,用來處理與二維碼圖像相似的細小前景與復雜背景的圖像二值化分離。結(jié)果表明,常見的二值化方法不適用于彩色二維碼的二值化處理,不利于從數(shù)據(jù)碼中準確提取前景信息點,本文基于MATLAB軟件仿真,以本文提到的算法流程對彩色二維碼圖像進行二值化,經(jīng)實驗結(jié)果證明該方法有效可行。
2、二值化方法
到目前為止,學者們提出的二值化方法有100多種,主要分為兩個類型:局部閾值法和全局閾值法。其中Niblack法,最大類間差法,Bernsen法,迭代法等是算法中較為經(jīng)典的算法,本文首先對這些算法進行大概的總結(jié),分析其優(yōu)點和不足,然后再根據(jù)這些經(jīng)典算法進行擴展得出本文處理二維碼圖像的算法。
2.1Niblack法
Niblack屬于局部閥值算法,局部閥值法對于識別干擾比較嚴重,品質(zhì)較差的圖像具有較好的效果。m為以該像素點為中心的區(qū)域的平均灰度值,v是該區(qū)域的標準差,k是一個修正系數(shù)(通常取-0.1)。閾值的計算公式是:
此方法能夠很好應對圖像光照不均的現(xiàn)象,但容易出現(xiàn)尾影,產(chǎn)生大量的噪聲。
2.2Bernsen法
Bernsen算法是一種典型的局部閥值算法。在灰度圖像中以像素點(i,j)為中心窗口,計算圖像各個像素點(i,j)的閾值T(i,j)。
2.3 Otus法(最大類間差法)
全局閥值方法操作容易,原理簡單,但是在圖像呈現(xiàn)光照不均、背景復雜、較多噪聲干擾時,表現(xiàn)出的效果差。最經(jīng)典方法就是最大類間差法(Otsu法)。Otsu法確定最佳閾值的準則是將圖像通過閾值分為兩組,一組對應目標前景,一組對應背景,使閾值分割后各個像素類的類內(nèi)方差最小,類別之間的差別最大。設(shè)T為選取的閥值,如果目標點的灰度值小于閥值則歸為背景,大于該閥值則為前景。w0為在此閾值T下前景點數(shù)比例,u0為前景平均灰度;w1為背景點數(shù)比例,u1為背景平均灰度。式中u滿足:
當方差g最大時,可以認為此時前景和背景差異最大,此時閾值T為最理想閾值。
2.4迭代法
迭代法是另一種全局閥值算法。該方法初始選取一個估計閾值T和參數(shù)△T,參數(shù)△T用于控制迭代次數(shù)。具體步驟如下:(1)用閾值T分割圖像,產(chǎn)生兩組像素G1和G2,前者由所有灰度值大于T的像素組成,后者由所有灰度值小于等于T的像素組成。(2)然后分別計算G1、G2區(qū)域內(nèi)的平均灰度值m1和m2。(3)根據(jù)m1和m2計算出新的閾值(4)重復步驟(1)~(3),直到在連續(xù)重復中, 的差異比預先設(shè)定的參數(shù)△T小為止。
3、本文方法
所采用的步驟如下:首先對圖像進行圖像形態(tài)學開運算,開運算分為兩步,先去圖像進行腐蝕后對圖像使用相同的機構(gòu)元素進行膨脹操作。開運算能夠去除孤立的小點、毛刺,消除小物體,平滑大物體的邊界。
數(shù)學表達式為:。
然后再用原圖像和得到的開運算圖像進行減法運算,得到減法運算結(jié)果。圖像的減法運算也稱為差分法,是一種常用于檢測圖像變化及物體運動的圖像處理方法,這種方法可以提供圖像間的差異信息,消除圖像背景,清除背景噪聲。
接著將減法結(jié)果進行分區(qū)處理,其目的是分別求出分割后的各個區(qū)域通過迭代法所最后確定的閾值,統(tǒng)計所有的區(qū)域閾值的大小。因為此時減法結(jié)果數(shù)據(jù)碼為深色,而背景為淺色,如何選取一個合適的閾值來區(qū)分數(shù)據(jù)碼和背景是對圖像二值化的關(guān)鍵。對每個劃分的區(qū)域進行迭代法計算動選取的閾值T1、T2、T3…….最接近、最難以識別的區(qū)域,并且通過合適的閾值Tn將其有效的二值化,然后對整個使用Tn來進行全部圖像的二值化。
在分區(qū)圖像中,大于閾值T的像素二值化后顯示為白色,小于閾值則表現(xiàn)為黑色,區(qū)域中最難以區(qū)別、最接近的區(qū)域一定閾值Tn一定是{T1、T2、T3…….}中最小的閾值,故。
將減法運算結(jié)果分區(qū)域,本文將圖像分為4塊區(qū)域,選取4塊區(qū)域中最小的閾值Tn來進行后續(xù)二值化步驟??梢愿鶕?jù)準確度的需要或者圖像前景和背景的復雜程度來確定劃分區(qū)域的多少,如果圖像復雜,準確度要求高,可在原圖像中分為9塊或16塊區(qū)域進行分別求取合適閾值再比較其大小。
接著分別求取四塊區(qū)域通過自動閾值法(迭代法)所得到的合適的閾值。四個區(qū)域分別是左上、右上、左下、右下,所對應的閾為 T1、T2、T3、T4。其數(shù)值如圖所示,分別為T1=82.767,T2=102.02, T3=85.651,T4=106.3。不難從上述數(shù)據(jù)看出,T1在{T1、T2、T3…….}中為最小數(shù)值,故,這表示T1所對應的左上的區(qū)域是本圖像中最難識別,前景和背景最相近最復雜的。選取作為全圖像的閾值能很好的進行二值化。
通過以為閾值進行二值化后產(chǎn)生的結(jié)果如圖5(a)所示,通過后續(xù)的邊緣提取和分割能過從中準確提取二維碼數(shù)據(jù)碼范圍如圖5(b)所示,然后可以在對圖像進行中值濾波得到圖5(c),圖5(b)(c)均可以被二維碼識別軟件識別。本文只介紹對二維碼二值化的一種方法,對后續(xù)處理不做過多說明。
4、結(jié)語
通過上述方法可以得到良好的二值化效果,能夠在圖像中有效的去除噪聲,消除背景的影響得到清晰的二值化結(jié)果。相比傳統(tǒng)的Niblack法,Otus算法等方法,本文方法在處理彩色二維碼或者與彩色二維碼相類似的前景瑣碎,背景復雜的圖像時,通過首先對圖像進行開運算,對圖像先腐蝕再膨脹且做背景減法,使得背景模糊化,前景突出化,從而完成第一步圖像前景初次提取。然后再通過分區(qū)處理,在背景減法結(jié)果中找到合適的閾值對其進行二值化,使前景信息(二維碼數(shù)據(jù)碼)以較為清晰的形態(tài)展現(xiàn)出來。在經(jīng)過本文處理后還可以對圖像再進行后續(xù)的平滑去噪,銳度化等等,圖像經(jīng)過處理后還是有少許信息丟失的情況,因為二維碼自身有是糾錯功能,所以并不影響二維碼在軟件中的識別,但在今后不論是研究擴展還是應用識別都需要有改進之處。
參考文獻
[1]鄒雄,劉國棟,曾文平.QR碼圖像預處理中的濾波研究[J].應用光學(Journal Of Applied called), 2010, 31(3):413-417.
作者簡介
靳佳澍(1991-),男,河南開封人,碩士研究生,研究方向為控制工程。