一種對(duì)二維條碼精確定位的方法及裝置制造方法
【專利摘要】本發(fā)明公開(kāi)了一種對(duì)二維條碼精確定位的方法及裝置,該方法包括:當(dāng)圖像傳感器采集到二維圖像后,對(duì)二維圖像進(jìn)行圖像預(yù)處理;在圖像預(yù)處理中完成二值化處理后,對(duì)二維圖像進(jìn)行精確定位,所述精確定位包括:依靠圖像預(yù)處理后二維條碼上黑白相間模塊組成的圖像特征對(duì)二維條碼所在區(qū)域進(jìn)行初步定位;對(duì)初步定位出的二維條碼區(qū)域上進(jìn)行二次遍歷掃描,得到二維條碼的四個(gè)頂點(diǎn)實(shí)現(xiàn)精確定位。本發(fā)明實(shí)施例依靠預(yù)處理后二維條碼上黑白相間模塊組成的獨(dú)特圖像特征,即有著明顯的黑白輪廓線,從而盡可能較為精確地對(duì)二維條碼所在區(qū)域進(jìn)行初步定位;而最終定位是在上述初步定位出的二維條碼區(qū)域上進(jìn)行二次遍歷掃描,最終實(shí)現(xiàn)精確定位。
【專利說(shuō)明】一種對(duì)二維條碼精確定位的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及二維條碼識(shí)別【技術(shù)領(lǐng)域】,具體涉及一種對(duì)二維條碼精確定位的方法及
>J-U ρ?α裝直。
【背景技術(shù)】
[0002]二維碼是由一系列深色模塊組成,有著鮮明獨(dú)特的圖形形式。通過(guò)這些模塊有規(guī)律地相間地排列,記錄著一定數(shù)據(jù)量的信息。而二維碼會(huì)以圖像的形式出現(xiàn)在需要標(biāo)識(shí)的產(chǎn)品或地方上,而它本身就提攜著這些東西的相關(guān)信息量。除了標(biāo)識(shí)信息之外,現(xiàn)在二維碼更作為媒介工具在金融活動(dòng)或個(gè)人的購(gòu)買活動(dòng)以及商業(yè)活動(dòng)中,如二維碼掃描購(gòu)買商品和二維碼支付?;诙S碼的識(shí)別技術(shù)主要步驟是:
[0003]首先對(duì)二維條碼圖像進(jìn)行采集。在二維條碼圖像采集模塊中,重點(diǎn)需采用靈敏和低失真的圖像傳感器拍攝下清晰度較高的圖像。這模塊的設(shè)計(jì)尤其重要,對(duì)圖像傳感器有著較高的性能要求,因?yàn)橛绊懻麄€(gè)二維條碼識(shí)讀系統(tǒng)的響應(yīng)速度和效率的關(guān)鍵兩點(diǎn),除了系統(tǒng)中央處理器的控制運(yùn)算速度,就是較快速度采集下的圖像清晰度。高清晰的采集圖像也是系統(tǒng)成功識(shí)讀二維條碼所攜帶信息的基本保證。
[0004]接著對(duì)二維條碼圖像進(jìn)行預(yù)處理,以保證二維條碼碼字定位提取的成功和準(zhǔn)確。因?yàn)橛捎诖嬖谛z影硬件設(shè)備有時(shí)難以克服的外界復(fù)雜環(huán)境,如聚焦差、成像系統(tǒng)誤差、光照不均、噪聲、人手抖動(dòng)等所影響,采集到的二維條碼圖像還是有欠清晰度的。所以,需要利用圖像處理技術(shù)作出增強(qiáng)圖像清晰度的預(yù)處理,如:過(guò)濾噪聲,增強(qiáng)圖像對(duì)比度,邊緣突出,去模糊等。在二維條碼碼字提取模塊中,需要利用圖像處理技術(shù),采取了如二值化,邊緣檢測(cè),輪廓提取,定位校正等步驟,從而能正確有效地提取到二維條碼的碼字。
[0005]接著,就是對(duì)提取到的二維條碼碼字進(jìn)行糾錯(cuò)譯碼。由于某種原因,二維條碼本身可能存在部分缺失或污損,折疊痕跡等情況,為保證譯碼出來(lái)的信息正確性,就需要采取一種與二維條碼編碼方式相呼應(yīng)的糾錯(cuò)譯碼方式,從而譯碼出正確信息。
[0006]最后,對(duì)譯碼出來(lái)的信息進(jìn)行顯示,保存或傳輸處理。在相應(yīng)的二維條碼識(shí)讀器配上數(shù)據(jù)存儲(chǔ)器和IXD顯示屏,從而能實(shí)時(shí)地對(duì)二維條碼信息進(jìn)行保存或顯示,還有系統(tǒng)應(yīng)用界面顯不。
[0007]從上面的步驟可以看出,二維識(shí)別技術(shù)的重點(diǎn)就在于如何在拍攝圖像上精確定位二維條碼部分。并且,只有精確定位二維條碼本身,才能更好地提高二維條碼的識(shí)別速度或者說(shuō)掃描精度,也能為后期的圖像校正和提取信息等步驟做好準(zhǔn)備?;诙S條碼識(shí)別的技術(shù)要求,在這里需要提出一種精確定位二維條碼的有效方法。
【發(fā)明內(nèi)容】
[0008]針對(duì)現(xiàn)有中對(duì)二維條碼中精確定位的不足,本發(fā)明提出了一種對(duì)二維條碼精確定位的方法及裝置,能更好的實(shí)現(xiàn)二維條碼的精確定位。
[0009]本發(fā)明提供了一種對(duì)二維條碼精確定位的方法,包括如下步驟:
[0010]當(dāng)圖像傳感器采集到二維圖像后,對(duì)二維圖像進(jìn)行圖像預(yù)處理;
[0011]在圖像預(yù)處理中完成二值化處理后,對(duì)二維圖像進(jìn)行精確定位,所述精確定位包括:
[0012]依靠圖像預(yù)處理后二維條碼上黑白相間模塊組成的圖像特征對(duì)二維條碼所在區(qū)域進(jìn)行初步定位;
[0013]對(duì)初步定位出的二維條碼區(qū)域上進(jìn)行二次遍歷掃描,得到二維條碼的四個(gè)頂點(diǎn)實(shí)現(xiàn)精確定位。
[0014]所述依靠圖像預(yù)處理后二維條碼上黑白相間模塊組成的圖像特征對(duì)二維條碼所在區(qū)域進(jìn)行初步定位包括:
[0015]對(duì)經(jīng)過(guò)二值化處理后的二維圖像進(jìn)行遍歷掃描,首先定位出二維條碼所在的水平區(qū)域,然后在定位出二維條碼所在的垂直區(qū)域。
[0016]所述定位出二維條碼所在的水平區(qū)域包括:
[0017]從上往下掃描二維圖像每一行,把每一行出現(xiàn)像素值從黑變白和從白變黑的變化次數(shù)用變化數(shù)組記錄下來(lái);
[0018]將記錄下來(lái)的變化次數(shù)大小使用堆排序算法對(duì)變化數(shù)組中的元素進(jìn)行排序,以及利用行數(shù)組把排序后的數(shù)組中的元素所對(duì)應(yīng)的行號(hào)記錄下來(lái);
[0019]將變化數(shù)組中排在二維條碼高度閾值常數(shù)前的元素提取出來(lái),以及將行數(shù)組中排在二維條碼高度閾值常數(shù)前的元素進(jìn)行排序;
[0020]按照順序進(jìn)行行行與行之間的判斷,當(dāng)判斷行與行之間的距離在一個(gè)二維條碼模塊寬度以內(nèi),并且位于二維條碼區(qū)域上時(shí),記錄下這兩行的行號(hào)。
[0021]所述對(duì)初步定位出的二維條碼區(qū)域上進(jìn)行二次遍歷掃描,得到二維條碼的四個(gè)頂點(diǎn)實(shí)現(xiàn)精確定位包括:
[0022]先分別在區(qū)域的最上方開(kāi)始向左和向右掃描這塊區(qū)域,當(dāng)遇到像素值為O的像素點(diǎn)時(shí)就停止,并分別記錄下這兩點(diǎn)的行號(hào)和列號(hào),這兩點(diǎn)分別為二維條碼的左上頂點(diǎn)和右上頂點(diǎn);再分別在區(qū)域的最下方開(kāi)始依然向左和向右掃描這塊區(qū)域,同樣當(dāng)遇到像素值為O的像素點(diǎn)時(shí)就停止,并分別記錄這兩點(diǎn)的行號(hào)和列號(hào),這兩點(diǎn)分別為二維條碼的左下頂點(diǎn)和右下頂點(diǎn)。
[0023]相應(yīng)的,本發(fā)明還提供了一種二維碼譯碼的裝置,包括:
[0024]圖像預(yù)處理模塊,用于在圖像傳感器采集到二維圖像后,對(duì)二維圖像進(jìn)行圖像預(yù)處理,以及在圖像預(yù)處理中完成二值化處理后,將處理結(jié)果輸出給精確定位模塊;
[0025]精確定位模塊,用于依靠圖像預(yù)處理后二維條碼上黑白相間模塊組成的圖像特征對(duì)二維條碼所在區(qū)域進(jìn)行初步定位;對(duì)初步定位出的二維條碼區(qū)域上進(jìn)行二次遍歷掃描,得到二維條碼的四個(gè)頂點(diǎn)實(shí)現(xiàn)精確定位。
[0026]所述精確定位模塊包括:
[0027]初步定位單元,用于依靠圖像預(yù)處理后二維條碼上黑白相間模塊組成的圖像特征對(duì)二維條碼所在區(qū)域進(jìn)行初步定位
[0028]精確定位單元,用于對(duì)初步定位出的二維條碼區(qū)域上進(jìn)行二次遍歷掃描,得到二維條碼的四個(gè)頂點(diǎn)實(shí)現(xiàn)精確定位。
[0029]本發(fā)明在圖像傳感器采集到二維圖像后,首先對(duì)拍攝圖像進(jìn)行圖像預(yù)處理。在這里所使用的圖像預(yù)處理過(guò)程能有效減少光照和噪聲所帶來(lái)的影響,從而也能使得后面的閾值二值化的效果更加明顯和精確。接著,就是對(duì)拍攝圖像進(jìn)行二值化處理,這步處理主要是最大可能地減少圖像本身的像素信息,但依然保留著圖像中的物體輪廓特征,因此二值化處理也起到圖像切割的效果。最終的效果是,圖像背景的像素值為255 ;而圖像前景,即二維條碼本身的像素值即為O。初步定位主要是依靠上述預(yù)處理后二維條碼上黑白相間模塊組成的獨(dú)特圖像特征,即有著明顯的黑白輪廓線,從而盡可能較為精確地對(duì)二維條碼所在區(qū)域進(jìn)行初步定位;而最終定位是在上述初步定位出的二維條碼區(qū)域上進(jìn)行二次遍歷掃描,得到二維條碼的四個(gè)頂點(diǎn),最終實(shí)現(xiàn)精確定位,從而方便后續(xù)整個(gè)譯碼的整個(gè)過(guò)程更加精準(zhǔn)。
【專利附圖】
【附圖說(shuō)明】
[0030]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0031]圖1是本發(fā)明實(shí)施例中的對(duì)二維條碼精確定位的方法流程圖;
[0032]圖2是本發(fā)明實(shí)施例中的二維碼譯碼的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0033]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0034]圖1示出了本發(fā)明實(shí)施例中的對(duì)二維條碼精確定位的方法流程圖,包括如下步驟:
[0035]S101、基于圖像傳感器采集二維圖像;
[0036]S102、對(duì)采集的二維圖像進(jìn)行圖像預(yù)處理;
[0037]當(dāng)圖像傳感器采集到二維圖像后,首先對(duì)拍攝圖像進(jìn)行圖像預(yù)處理。在這里所使用的圖像預(yù)處理過(guò)程能有效減少光照和噪聲所帶來(lái)的影響,從而也能使得后面的閾值二值化的效果更加明顯和精確。
[0038]圖像預(yù)處理過(guò)程中包括了:灰度化、邊緣檢測(cè)、高斯濾波、二值化等處理過(guò)程。對(duì)拍攝圖像進(jìn)行二值化處理,這步處理主要是最大可能地減少圖像本身的像素信息,但依然保留著圖像中的物體輪廓特征,因此二值化處理也起到圖像切割的效果。最終的效果是,圖像背景的像素值為255 ;而圖像前景,即二維條碼本身的像素值即為O。
[0039]S103、對(duì)二維圖像進(jìn)行初步定位;
[0040]初步定位主要是依靠上述預(yù)處理后二維條碼上黑白相間模塊組成的獨(dú)特圖像特征,即有著明顯的黑白輪廓線,從而盡可能較為精確地對(duì)二維條碼所在區(qū)域進(jìn)行初步定位。
[0041]對(duì)經(jīng)二值化處理的拍攝圖像進(jìn)行遍歷掃描。首先在這里先分別定義兩個(gè)名為變化數(shù)組ChangeCount [N]和行數(shù)組LineNum[N],在這里分別記錄N個(gè)元素。數(shù)組在計(jì)算機(jī)中表示為一種順序存儲(chǔ)式的數(shù)據(jù)結(jié)構(gòu)。第一步:定位出二維條碼所在的水平區(qū)域。從上往下掃描每一行,把每一行出現(xiàn)像素值從黑變白和從白變黑的變化次數(shù)用數(shù)組ChangeCount [N]記錄下來(lái),其中N為圖像的每行像素所在行的行號(hào)。因?yàn)檫@些像素變化更多會(huì)出現(xiàn)在二維條碼本體上,所以它們可以很好地表征二維條碼所在的區(qū)域。首先將記錄下來(lái)的變化次數(shù)大小進(jìn)行排序。由于這里要進(jìn)行排序的是數(shù)組中的元素,所以要遍歷整個(gè)ChangeCount[N]數(shù)組。因此,為了進(jìn)一步把算法的時(shí)間復(fù)雜度降低,在這里引入堆這種更高效的存儲(chǔ)數(shù)據(jù)結(jié)構(gòu),在這里把數(shù)組ChangeCount [N]轉(zhuǎn)為堆,然后使用堆排序算法對(duì)數(shù)組元素進(jìn)行快速排序,同時(shí)利用數(shù)組LineNum[N]把排序后的數(shù)組中的元素所對(duì)應(yīng)的行號(hào)記錄下來(lái),方便后面的處理。
[0042]然后,在經(jīng)過(guò)元素從大到小排序的數(shù)組ChangeCount [N]中把排在前MAX個(gè)的元素提取下來(lái)。此處的操作主要為了找出圖像中像素間變化次數(shù)較多且有可能包含二維條碼區(qū)域的全部像素行。MAX為一常數(shù)值,經(jīng)實(shí)驗(yàn)可為二維條碼標(biāo)準(zhǔn)高度的1.5倍時(shí)可以更好減小定位誤差,并四舍五入取整,保證MAX為一常整數(shù),這里可以允許四舍五入帶來(lái)的誤差。因?yàn)槎祷笠廊贿€可能存在的背景像素會(huì)形成干擾行,很容易被誤認(rèn)為是二維圖像所在區(qū)域的某一行。因此接下來(lái)要進(jìn)行相關(guān)行判斷。首先,對(duì)上述得到的數(shù)組LineNum[N]中的前MAX個(gè)元素進(jìn)行排序,依然可以使用上述提到的堆排序算法。接著按順序進(jìn)行行與行之間的相關(guān)行判斷。判斷依據(jù)是:只要上述得到的MAX條可能組成二維條碼所在區(qū)域的行里,行與行之間的距離是在一個(gè)二維條碼模塊寬度以內(nèi),就可認(rèn)為它們是相關(guān)行,并且位于二維條碼區(qū)域上,然后記錄下這兩行的行號(hào)。而這距離的計(jì)算就是求這兩行的行號(hào)差。最后,就能得到一系列相關(guān)行,確定均位于二維條碼區(qū)域上,再找出其中的最大行號(hào)和最小行號(hào),它們的差就是二維條碼所在的水平區(qū)域的高度。
[0043]第二步:定位出二維條碼所在的垂直區(qū)域。在圖像上從左往右掃描每一列像素,接著的處理就與上述定位二維條碼水平區(qū)域相類似。最終得出二維條碼所在的垂直區(qū)域的寬度。得到二維條碼所在的水平區(qū)域和垂直區(qū)域后,再找到它們的交集區(qū)域,即記錄這塊重疊區(qū)域的四條邊界,其實(shí)分別就是上述得到的二維條碼水平區(qū)域的最大行號(hào)和最小行號(hào),以及二維條碼垂直區(qū)域的最大列號(hào)和最小列號(hào)。這樣,通過(guò)上述方法,就能對(duì)二維條碼進(jìn)行初步定位。
[0044]S104、對(duì)二維圖像進(jìn)行精確對(duì)位。
[0045]精確定位是在上述初步定位出的二維條碼區(qū)域上進(jìn)行二次遍歷掃描,得到二維條碼的四個(gè)頂點(diǎn)。
[0046]對(duì)二維條碼進(jìn)行精確定位的目的就是找到其四個(gè)頂點(diǎn),從而方便后面的圖形校正處理以及最后的切割提取。主要的做法就是在上述初步定位到的二維條碼區(qū)域上再次進(jìn)行遍歷掃描。先分別在區(qū)域的最上方開(kāi)始向左和向右掃描這塊區(qū)域,當(dāng)遇到像素值為O的像素點(diǎn)時(shí)就停止,并分別記錄下這兩點(diǎn)的行號(hào)和列號(hào),這兩點(diǎn)就為二維條碼的左上和右上頂點(diǎn);再分別在區(qū)域的最下方開(kāi)始依然向左和向右掃描這塊區(qū)域,同樣當(dāng)遇到像素值為O的像素點(diǎn)時(shí)就停止,并分別記錄這兩點(diǎn)的行號(hào)和列號(hào),這兩點(diǎn)就為二維條碼的左下和右下頂點(diǎn)。這樣,二維條碼的四個(gè)頂點(diǎn)就被找出,從而完成對(duì)二維條碼的精確定位。
[0047]相應(yīng)的,圖2示出了本發(fā)明實(shí)施例中的二維碼譯碼的裝置結(jié)構(gòu)示意圖,包括:
[0048]圖像預(yù)處理模塊,用于在圖像傳感器采集到二維圖像后,對(duì)二維圖像進(jìn)行圖像預(yù)處理,以及在圖像預(yù)處理中完成二值化處理后,將處理結(jié)果輸出給精確定位模塊;
[0049]精確定位模塊,用于依靠圖像預(yù)處理后二維條碼上黑白相間模塊組成的圖像特征對(duì)二維條碼所在區(qū)域進(jìn)行初步定位;對(duì)初步定位出的二維條碼區(qū)域上進(jìn)行二次遍歷掃描,得到二維條碼的四個(gè)頂點(diǎn)實(shí)現(xiàn)精確定位。
[0050]需要說(shuō)明的是,該精確定位模塊還包括有:
[0051]初步定位單元,用于依靠圖像預(yù)處理后二維條碼上黑白相間模塊組成的圖像特征對(duì)二維條碼所在區(qū)域進(jìn)行初步定位;
[0052]精確定位單元,用于對(duì)初步定位出的二維條碼區(qū)域上進(jìn)行二次遍歷掃描,得到二維條碼的四個(gè)頂點(diǎn)實(shí)現(xiàn)精確定位。
[0053]初步定位單元用于對(duì)經(jīng)過(guò)二值化處理后的二維圖像進(jìn)行遍歷掃描,首先定位出二維條碼所在的水平區(qū)域,然后在定位出二維條碼所在的垂直區(qū)域。以及該定位出二維條碼所在的水平區(qū)域包括:從上往下掃描二維圖像每一行,把每一行出現(xiàn)像素值從黑變白和從白變黑的變化次數(shù)用變化數(shù)組記錄下來(lái);將記錄下來(lái)的變化次數(shù)大小使用堆排序算法對(duì)變化數(shù)組中的元素進(jìn)行排序,以及利用行數(shù)組把排序后的數(shù)組中的元素所對(duì)應(yīng)的行號(hào)記錄下來(lái);將變化數(shù)組中排在二維條碼高度閾值常數(shù)前的元素提取出來(lái),以及將行數(shù)組中排在二維條碼高度閾值常數(shù)前的元素進(jìn)行排序;按照順序進(jìn)行行行與行之間的判斷,當(dāng)判斷行與行之間的距離在一個(gè)二維條碼模塊寬度以內(nèi),并且位于二維條碼區(qū)域上時(shí),記錄下這兩行的行號(hào)。
[0054]該精確定位單元用于先分別在區(qū)域的最上方開(kāi)始向左和向右掃描這塊區(qū)域,當(dāng)遇到像素值為O的像素點(diǎn)時(shí)就停止,并分別記錄下這兩點(diǎn)的行號(hào)和列號(hào),這兩點(diǎn)分別為二維條碼的左上頂點(diǎn)和右上頂點(diǎn);再分別在區(qū)域的最下方開(kāi)始依然向左和向右掃描這塊區(qū)域,同樣當(dāng)遇到像素值為O的像素點(diǎn)時(shí)就停止,并分別記錄這兩點(diǎn)的行號(hào)和列號(hào),這兩點(diǎn)分別為二維條碼的左下頂點(diǎn)和右下頂點(diǎn)。
[0055]綜上,本發(fā)明在圖像傳感器采集到二維圖像后,首先對(duì)拍攝圖像進(jìn)行圖像預(yù)處理。在這里所使用的圖像預(yù)處理過(guò)程能有效減少光照和噪聲所帶來(lái)的影響,從而也能使得后面的閾值二值化的效果更加明顯和精確。接著,就是對(duì)拍攝圖像進(jìn)行二值化處理,這步處理主要是最大可能地減少圖像本身的像素信息,但依然保留著圖像中的物體輪廓特征,因此二值化處理也起到圖像切割的效果。最終的效果是,圖像背景的像素值為255 ;而圖像前景,即二維條碼本身的像素值即為O。初步定位主要是依靠上述預(yù)處理后二維條碼上黑白相間模塊組成的獨(dú)特圖像特征,即有著明顯的黑白輪廓線,從而盡可能較為精確地對(duì)二維條碼所在區(qū)域進(jìn)行初步定位;而最終定位是在上述初步定位出的二維條碼區(qū)域上進(jìn)行二次遍歷掃描,得到二維條碼的四個(gè)頂點(diǎn),最終實(shí)現(xiàn)精確定位,從而方便后續(xù)整個(gè)譯碼的整個(gè)過(guò)程更加精準(zhǔn)。
[0056]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:只讀存儲(chǔ)器(ROM,Read Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,RandomAccess Memory)、磁盤(pán)或光盤(pán)等。
[0057]以上對(duì)本發(fā)明實(shí)施例所提供的對(duì)二維條碼精確定位的方法及裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1.一種對(duì)二維條碼精確定位的方法,其特征在于,包括如下步驟: 當(dāng)圖像傳感器采集到二維圖像后,對(duì)二維圖像進(jìn)行圖像預(yù)處理; 在圖像預(yù)處理中完成二值化處理后,對(duì)二維圖像進(jìn)行精確定位,所述精確定位包括:依靠圖像預(yù)處理后二維條碼上黑白相間模塊組成的圖像特征對(duì)二維條碼所在區(qū)域進(jìn)行初步定位; 對(duì)初步定位出的二維條碼區(qū)域上進(jìn)行二次遍歷掃描,得到二維條碼的四個(gè)頂點(diǎn)實(shí)現(xiàn)精確定位。
2.如權(quán)利要求1所述的對(duì)二維條碼精確定位的方法,其特征在于,所述依靠圖像預(yù)處理后二維條碼上黑白相間模塊組成的圖像特征對(duì)二維條碼所在區(qū)域進(jìn)行初步定位包括: 對(duì)經(jīng)過(guò)二值化處理后的二維圖像進(jìn)行遍歷掃描,首先定位出二維條碼所在的水平區(qū)域,然后在定位出二維條碼所在的垂直區(qū)域。
3.如權(quán)利要求2所述的對(duì)二維條碼精確定位的方法,其特征在于,所述定位出二維條碼所在的水平區(qū)域包括: 從上往下掃描二維圖像每一行,把每一行出現(xiàn)像素值從黑變白和從白變黑的變化次數(shù)用變化數(shù)組記錄下來(lái); 將記錄下來(lái)的變化次數(shù)大小使用堆排序算法對(duì)變化數(shù)組中的元素進(jìn)行排序,以及利用行數(shù)組把排序后的數(shù)組中的元素所對(duì)應(yīng)的行號(hào)記錄下來(lái); 將變化數(shù)組中排在二維條碼高度閾值常數(shù)前的元素提取出來(lái),以及將行數(shù)組中排在二維條碼高度閾值常數(shù)前的元素進(jìn)行排序; 按照順序進(jìn)行行行與行之間的判斷,當(dāng)判斷行與行之間的距離在一個(gè)二維條碼模塊寬度以內(nèi),并且位于二維條碼區(qū)域上時(shí),記錄下這兩行的行號(hào)。
4.如權(quán)利要求2所述的對(duì)二維條碼精確定位的方法,其特征在于,所述對(duì)初步定位出的二維條碼區(qū)域上進(jìn)行二次遍歷掃描,得到二維條碼的四個(gè)頂點(diǎn)實(shí)現(xiàn)精確定位包括: 先分別在區(qū)域的最上方開(kāi)始向左和向右掃描這塊區(qū)域,當(dāng)遇到像素值為O的像素點(diǎn)時(shí)就停止,并分別記錄下這兩點(diǎn)的行號(hào)和列號(hào),這兩點(diǎn)分別為二維條碼的左上頂點(diǎn)和右上頂點(diǎn);再分別在區(qū)域的最下方開(kāi)始依然向左和向右掃描這塊區(qū)域,同樣當(dāng)遇到像素值為O的像素點(diǎn)時(shí)就停止,并分別記錄這兩點(diǎn)的行號(hào)和列號(hào),這兩點(diǎn)分別為二維條碼的左下頂點(diǎn)和右下頂點(diǎn)。
5.一種二維碼譯碼的裝置,其特征在于,包括: 圖像預(yù)處理模塊,用于在圖像傳感器采集到二維圖像后,對(duì)二維圖像進(jìn)行圖像預(yù)處理,以及在圖像預(yù)處理中完成二值化處理后,將處理結(jié)果輸出給精確定位模塊; 精確定位模塊,用于依靠圖像預(yù)處理后二維條碼上黑白相間模塊組成的圖像特征對(duì)二維條碼所在區(qū)域進(jìn)行初步定位;對(duì)初步定位出的二維條碼區(qū)域上進(jìn)行二次遍歷掃描,得到二維條碼的四個(gè)頂點(diǎn)實(shí)現(xiàn)精確定位。
6.如權(quán)利要求5所述的二維碼譯碼的裝置,其特征在于,所述精確定位模塊包括: 初步定位單元,用于依靠圖像預(yù)處理后二維條碼上黑白相間模塊組成的圖像特征對(duì)二維條碼所在區(qū)域進(jìn)行初步定位 精確定位單元,用于對(duì)初步定位出的二維條碼區(qū)域上進(jìn)行二次遍歷掃描,得到二維條碼的四個(gè)頂點(diǎn)實(shí)現(xiàn)精確定位。
【文檔編號(hào)】G06K7/10GK104298947SQ201410404650
【公開(kāi)日】2015年1月21日 申請(qǐng)日期:2014年8月15日 優(yōu)先權(quán)日:2014年8月15日
【發(fā)明者】胡建國(guó), 譚宇泉, 李仕仁, 白小楠 申請(qǐng)人:廣東順德中山大學(xué)卡內(nèi)基梅隆大學(xué)國(guó)際聯(lián)合研究院, 廣州中大數(shù)碼科技有限公司, 中山大學(xué)