本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,尤其涉及一種二維碼圖像二值化的改進(jìn)方法。
背景技術(shù):
二維碼因具有信息存儲能力強(qiáng)、識讀方便、保密性好等優(yōu)點(diǎn)而被廣泛使用。二維碼圖像在識別過程中,通過掃描頭或攝像頭處理的圖片難免會出現(xiàn)失真、模糊、傾斜或者光照不均的現(xiàn)象,以致于影響識讀效果,現(xiàn)有的圖像處理方式是通過圖像灰度化處理之后對圖像進(jìn)行二值化處理,但由于二維碼使用環(huán)境千差萬別,光照環(huán)境不均衡,在對圖像二值化處理的時候,往往不能對在光照不均勻和交黑暗地方獲取到的二維碼圖像進(jìn)行較好的二值化處理,使之在后續(xù)的識別上往往無法識別出二維碼圖像的信息,或?qū)ΧS碼圖像的信息識別錯誤。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種二維碼圖像二值化的改進(jìn)方法,能更好的針對在光照不均勻的條件下獲取到的二維碼圖像進(jìn)行二值化處理,并獲取到較好的處理效果。
為了解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種二維碼圖像二值化的改進(jìn)方法,所述方法包括:
將采集到的二維碼圖像進(jìn)行預(yù)處理,獲取預(yù)處理后的二維碼圖像,其中所述預(yù)處理包括設(shè)定二維碼圖像的長度為m,寬度為n,對所述二維碼圖像進(jìn)行灰度化處理;
將所述預(yù)處理后的二維碼圖像進(jìn)行分塊和標(biāo)注處理,獲取分塊和標(biāo)注處理后的二維碼圖像塊;
計(jì)算每個二維碼圖像塊的像素值和像素值閾值,采用ave[a]表示計(jì)算獲取的像素值,ta表示像素值閾值,其中所述a表示第a塊二維碼圖像塊;
將所有的二維碼圖像塊進(jìn)行融合處理,獲取成完整的二維碼圖像。
優(yōu)選地,所述將所述預(yù)處理后的二維碼圖像進(jìn)行分塊和標(biāo)注處理為將所述預(yù)處理后的二維碼圖像分成4塊,每塊分別記為pa,a=1,2,3,4。
優(yōu)選地,所述計(jì)算每個二維碼圖像塊的像素值的公式為:
其中,p1,p2,p3,p4表示不同的二維碼圖像塊,a(i,j)表示待處理的二維碼圖像,m、n分別表示待處理的二維碼圖像的長和寬。
優(yōu)選地,所述計(jì)算每個二維碼圖像塊的像素值閾值的公式為:
其中,ta表示像素閾值,ave[a]表示第a個圖像塊的像素值。
優(yōu)選地,所述將所有的二維碼圖像塊進(jìn)行融合處理,獲取成完整的二維碼圖像,包括:
采用自適應(yīng)閾值調(diào)整的方式調(diào)整二維碼圖像塊融合時的像素閾值,使融合后完整的二維碼圖像像素值點(diǎn)均勻分布。
在具體實(shí)施過程中,能更好的針對在光照不均勻的條件下獲取到的二維碼圖像進(jìn)行二值化處理,并獲取到較好的處理效果;使得在后續(xù)對二維碼圖像中的信息的識別中,能更快更準(zhǔn)確的進(jìn)行識別。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見的,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1是本發(fā)明實(shí)施例中的二維碼圖像二值化的改進(jìn)方法的方法流程示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
為了提高二維碼圖像的快速識別能力,需要將灰度處理后的圖像轉(zhuǎn)化為二值圖像。圖像像素點(diǎn)的處理依據(jù)閥值,根據(jù)閥值t來劃分,一般劃分為兩部分,一部分是大于t的像素點(diǎn),另一部分是小于t的像素點(diǎn),劃分依據(jù)的表達(dá)式為:
其中,g(x,y)標(biāo)示二值化后的像素點(diǎn),f(x,y)表示原始圖像像素點(diǎn),t是二值化閥值。
自適應(yīng)閾值算法關(guān)鍵是要選取一個合適的閾值,通常求它所用的閾值選取方法是基于點(diǎn)的全局閾值算法,具體做法是首先選一個像素作為中心,然后參照此像素點(diǎn)再選擇一個鄰域,并以這個像素點(diǎn)作為鄰域的中心。然后在該鄰域內(nèi)查找的最大像素值與最小像素值,要將選取鄰域中的最大像素值與最小像素值查找出來,計(jì)算最大像素值與最小像素值的平均值,把計(jì)算得到的平均值作為二值化的閾值。計(jì)算中,基本要選擇合適的窗口,窗口不能太大,也不能太小,如果選擇的窗口太大,要處理的像素就越多,運(yùn)算多需要的時間就越長。首先,要選擇大小合適的窗口,盡可能的提高運(yùn)算的速度,減少運(yùn)算所需的時間,但前提是要保證二值化的同等效果。在這里,將二維碼碼圖像分成四塊,每一塊選擇一個合適的閾值分別進(jìn)行二值化。將圖像分成小塊分別進(jìn)行處理,每一塊內(nèi)像素值比較接近,沒有明顯的跳躍現(xiàn)象,這樣能夠得到比較理想的二值化效果。不會對二維碼圖像進(jìn)行誤判,同時處理速度比較快,在實(shí)際應(yīng)用中,能夠滿足要求。將目標(biāo)從背景中快速的分離出來。
圖1是本發(fā)明實(shí)施例中的二維碼圖像二值化的改進(jìn)方法的方法流程示意圖,如圖1所示,所述方法包括:
s11:將采集到的二維碼圖像進(jìn)行預(yù)處理,獲取預(yù)處理后的二維碼圖像,其中所述預(yù)處理包括設(shè)定二維碼圖像的長度為m,寬度為n,對所述二維碼圖像進(jìn)行灰度化處理;
s12:將所述預(yù)處理后的二維碼圖像進(jìn)行分塊和標(biāo)注處理,獲取分塊和標(biāo)注處理后的二維碼圖像塊;
s13:計(jì)算每個二維碼圖像塊的像素值和像素值閾值,采用ave[a]表示計(jì)算獲取的像素值,ta表示像素值閾值,其中所述a表示第a塊二維碼圖像塊;
s14:將所有的二維碼圖像塊進(jìn)行融合處理,獲取成完整的二維碼圖像。
對s11作進(jìn)一步說明:
通過攝像頭或相機(jī)對二維碼圖像進(jìn)行采集,然后將采集到的二維碼圖像傳輸?shù)酱A(yù)處理系統(tǒng)中,在待預(yù)處理系統(tǒng)中進(jìn)行預(yù)處理,預(yù)處理過程中,首先,將待預(yù)處理的二維碼圖像設(shè)置為a(i,j),設(shè)定二維碼圖像的長度為m,寬度為n,然后再對二維碼圖像進(jìn)行灰度化處理。
對s12作進(jìn)一步說明:
對預(yù)處理之后的二維碼圖像進(jìn)行分塊,然后對每一個分塊分別進(jìn)行標(biāo)注,在具體實(shí)施過程中,將預(yù)處理后的二維碼圖像分成4塊,每塊分別記為pa,a=1,2,3,4。因?yàn)樵谟?jì)算二維碼圖像像素時,需要選擇合適的窗口,窗口不能太小,如果太小,要處理的圖像塊太多,計(jì)算表述太復(fù)雜,也不能太大,如果選擇的窗口太大,要處理的像素就越多,運(yùn)算多需要的時間就越長。要選擇大小合適的窗口,盡可能的提高運(yùn)算的速度,減少運(yùn)算所需的時間,但前提是要保證二值化的同等效果。因此本發(fā)明實(shí)施例中選擇將二維碼圖像分為4塊進(jìn)行處理。
對s13作進(jìn)一步說明:
分別計(jì)算每個二維碼圖像塊的像素值和像素閾值,采用ave[a]表示計(jì)算獲取的像素值,ta表示像素值閾值,其中所述a表示第a塊二維碼圖像塊;
其中,計(jì)算每個二維碼圖像塊的像素值的公式為:
其中,p1,p2,p3,p4表示不同的二維碼圖像塊,a(i,j)表示待處理的二維碼圖像,m、n分別表示待處理的二維碼圖像的長和寬。
其中,計(jì)算每個二維碼圖像塊的像素值閾值的公式為:
其中,表示像素閾值,表示第個圖像塊的像素值。
對s14作進(jìn)一步說明:
將所有的二維碼圖像塊進(jìn)行融合處理,獲取成完整的二維碼圖像。
進(jìn)一步的,采用自適應(yīng)閾值調(diào)整的方式調(diào)整二維碼圖像塊融合時的像素閾值,使融合后完整的二維碼圖像像素值點(diǎn)均勻分布。
在圖像融合過程中,采用horzcat函數(shù)和vertcat函數(shù)進(jìn)行融合,這兩個函數(shù)是matlab自帶的函數(shù),在融合過程中要經(jīng)過嘗試選用不同合適的補(bǔ)償因子,用它調(diào)節(jié)自適應(yīng)閾值中,不同子塊間的差異,盡可能的使整幅圖片的像素值點(diǎn)均勻的分布,降低客觀環(huán)境對圖像二值化帶來的影響,這里主要是光照不均的影響。
在具體實(shí)施過程中,能更好的針對在光照不均勻的條件下獲取到的二維碼圖像進(jìn)行二值化處理,并獲取到較好的處理效果;使得在后續(xù)對二維碼圖像中的信息的識別中,能更快更準(zhǔn)確的進(jìn)行識別。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計(jì)算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:只讀存儲器(rom,readonlymemory)、隨機(jī)存取存儲器(ram,randomaccessmemory)、磁盤或光盤等。
另外,以上對本發(fā)明實(shí)施例所提供的一種二維碼圖像二值化的改進(jìn)方法進(jìn)行了詳細(xì)介紹,本文中應(yīng)采用了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。