一種影像式cmos條碼快速識別方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及條碼識別領(lǐng)域,特別涉及一種影像式CMOS條碼快速識別方法及裝置。
【背景技術(shù)】
[0002]根據(jù)條形碼目前的應(yīng)用環(huán)境和信息量要求,在條形碼識別領(lǐng)域,對識別的閱讀器的要求越來越高。要求閱讀器既能讀取一維條形碼,又能讀取二維條碼;要求數(shù)據(jù)位可高達500位以上條碼,并且可360度全方位角度讀取;而傳統(tǒng)激光閱讀器、CXD閱讀器只能讀取100位以內(nèi)條碼(一般在48位以內(nèi));只能正向、并向讀取,不能360度讀取。另外,傳統(tǒng)激光閱讀器、CCD閱讀器不能識別在含吸光材料為介質(zhì)作背景的條碼。傳統(tǒng)影像式CMOS 二維掃描器只支持串口 TTL/RS232 輸出,不支持含 USB HID keyboard、USB-VCP (CDC)、RS485 切換輸出。傳統(tǒng)影像式CMOS 二維掃描器不支持二維碼圖像導(dǎo)出功能。一維條形碼解碼缺乏變換角度解碼,影響識讀率和解碼速度。圖片預(yù)處理二值化算法缺乏多種算法切換,影響識讀率。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的上述讀取的數(shù)據(jù)位較少、不能360度讀取、影響識讀率的缺陷,提供一種能大大提高讀取的數(shù)據(jù)位、能360度讀取、提高識讀率的影像式CMOS條碼快速識別方法及裝置。
[0004]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:構(gòu)造一種影像式CMOS條碼快速識別方法,應(yīng)用于條碼識別系統(tǒng),所述條碼識別系統(tǒng)包括影像式CMOS成像系統(tǒng),所述識別方法包括如下步驟:
[0005]A)啟動掃描功能,并啟動所述影像式CMOS成像系統(tǒng);
[0006]B)所述影像式CMOS成像系統(tǒng)獲取圖像,并將獲取的圖像分別緩存在第一數(shù)據(jù)緩沖區(qū)和第二數(shù)據(jù)緩沖區(qū)中;
[0007]C)將緩存在所述第二數(shù)據(jù)緩沖區(qū)中的圖像按照當前類型的二值化算法進行圖像二值化處理;
[0008]D)對經(jīng)過二值化處理后的圖像進行一維條形碼解碼,并判斷是否解碼成功,如是,執(zhí)行步驟G);否則,執(zhí)行步驟E);
[0009]E)對所述經(jīng)過二值化處理后的圖像進行二維條形碼解碼,并判斷是否解碼成功,如是,執(zhí)行步驟G);否則,執(zhí)行步驟F);
[0010]F)判斷事先指定的所有類型的二值化算法是否都切換過,如是,返回步驟B);否貝1J,切換到下一類型的二值化算法,并返回步驟C);
[0011]G)進行參數(shù)預(yù)處理;所述參數(shù)預(yù)處理包括輸出接口類型轉(zhuǎn)換和解碼數(shù)據(jù)格式轉(zhuǎn)換;
[0012]H)根據(jù)當前接口類型參數(shù)值的大小選擇相應(yīng)的接口輸出方式,并由相應(yīng)的接口輸出自動識別成功的條形碼。
[0013]在本發(fā)明所述的影像式CMOS條碼快速識別方法中,還包括如下步驟:
[0014]I)判斷串口是否接收到導(dǎo)出原圖像的指令,如是,輸出所述第一數(shù)據(jù)緩沖區(qū)中的圖像信息;否則,繼續(xù)進行本步驟的判斷。
[0015]在本發(fā)明所述的影像式CMOS條碼快速識別方法中,所述步驟D)進一步包括:
[0016]Dl)對旋轉(zhuǎn)角度賦值為O ;
[0017]D2)將經(jīng)過二值化處理后的圖像按照所述旋轉(zhuǎn)角度的大小進行旋轉(zhuǎn);
[0018]D3)根據(jù)一維條形碼編碼表進行輪循解碼,并判斷解碼是否成功,如是,執(zhí)行步驟G);否則,執(zhí)行步驟D4);
[0019]D4)將所述旋轉(zhuǎn)角度加上一個角度設(shè)定值后,判斷其大小是否大于180度,如是,執(zhí)行步驟E);否則,返回步驟D2)。
[0020]在本發(fā)明所述的影像式CMOS條碼快速識別方法中,所述事先指定的所有類型的二值化算法包括中值濾波算法、大律法和局部算法。
[0021]在本發(fā)明所述的影像式CMOS條碼快速識別方法中,當切換到局部算法時,所述局部算法包括如下步驟:
[0022]Cl丨)從第二數(shù)據(jù)緩沖區(qū)中獲取圖像的像素點;
[0023]C2 ')分別給半徑參考值和修正系數(shù)進行賦值;
[0024]C3 ')根據(jù)半徑參考值的平方值大小分別計算出所述像素點的像素平均值和標準方差值;
[0025]C4')將所述修正系數(shù)和標準方差值相乘,并將得到的乘積與所述像素平均值進行相加得到二值化值;
[0026]C5 ’ )對經(jīng)過二值化處理后的圖像進行一維條形碼或二維條形碼解碼,并判解碼是否成功,如是,執(zhí)行步驟G);否則,執(zhí)行步驟C6丨);
[0027]C6 ')變換所述半徑參考值的大小,并判斷變換后的半徑參考值的大小是否大于半徑設(shè)定值,如是,執(zhí)行步驟G);否則,返回步驟C2')。
[0028]在本發(fā)明所述的影像式CMOS條碼快速識別方法中,所述步驟H)進一步包括:
[0029]Hl)判斷接口參數(shù)是否等于第一設(shè)定值,如是,選擇TTL接口或RS232接口輸出方式,并使用所述TTL接口或RS232接口輸出自動識別成功的條形碼;否則,執(zhí)行步驟H2);
[0030]H2)判斷所述接口參數(shù)是否等于第二設(shè)定值,如是,選擇USB HID鍵盤輸出方式,并使用所述USB HID鍵盤輸出自動識別成功的條形碼;否則,執(zhí)行步驟H3);
[0031]H3)判斷所述接口參數(shù)是否等于第三設(shè)定值,如是,選擇USB虛擬串口輸出方式,并使用所述USB虛擬串口輸出自動識別成功的條形碼;否則,執(zhí)行步驟H4);
[0032]H4)判斷所述接口參數(shù)是否等于第四設(shè)定值,如是,選擇RS485接口輸出方式,并使用所述RS485接口輸出自動識別成功的條形碼;否則,提示報警信息。
[0033]本發(fā)明還涉及一種實現(xiàn)上述影像式CMOS條碼快速識別方法的裝置,應(yīng)用于條碼識別系統(tǒng),所述條碼識別系統(tǒng)包括影像式CMOS成像系統(tǒng),所述裝置包括:
[0034]啟動單元:用于啟動掃描功能,并啟動所述影像式CMOS成像系統(tǒng);
[0035]圖像獲取緩存單元:用于使所述影像式CMOS成像系統(tǒng)獲取圖像,并將獲取的圖像分別緩存在第一數(shù)據(jù)緩沖區(qū)和第二數(shù)據(jù)緩沖區(qū)中;
[0036]二值化處理單元:用于將緩存在所述第二數(shù)據(jù)緩沖區(qū)中的圖像按照當前類型的二值化算法進行圖像二值化處理;
[0037]一維條形碼解碼單元:用于對經(jīng)過二值化處理后的圖像進行一維條形碼解碼,并判斷是否解碼成功;
[0038]二維條形碼解碼單元:用于對所述經(jīng)過二值化處理后的圖像進行二維條形碼解碼,并判斷是否解碼成功;
[0039]切換判斷單元:用于判斷事先指定的所有類型的二值化算法是否都切換過,如是,返回;否則,切換到下一類型的二值化算法;
[0040]參數(shù)預(yù)處理單元:用于進行參數(shù)預(yù)處理;所述參數(shù)預(yù)處理包括輸出接口類型轉(zhuǎn)換和解碼數(shù)據(jù)格式轉(zhuǎn)換;
[0041]條形碼輸出單元:用于根據(jù)當前接口類型參數(shù)值的大小選擇相應(yīng)的接口輸出方式,并由相應(yīng)的接口輸出自動識別成功的條形碼。
[0042]在本發(fā)明所述的裝置中,還包括:
[0043]指令接收判斷單元:用于判斷串口是否接收到導(dǎo)出原圖像的指令,如是,輸出所述第一數(shù)據(jù)緩沖區(qū)中的圖像信息;否則,繼續(xù)進行判斷。
[0044]在本發(fā)明所述的裝置中,所述一維條形碼解碼單元進一步包括:
[0045]賦值模塊:用于對旋轉(zhuǎn)角度賦值為O ;
[0046]圖像旋轉(zhuǎn)模塊:用于將經(jīng)過二值化處理后的圖像按照所述旋轉(zhuǎn)角度的大小進行旋轉(zhuǎn);
[0047]輪循解碼模塊:用于根據(jù)一維條形碼編碼表進行輪循解碼,并判斷解碼是否成功;
[0048]旋轉(zhuǎn)角度大小判斷模塊:用于將所述旋轉(zhuǎn)角度加上一個角度設(shè)定值后,判斷其大小是否大于180度。
[0049]在本發(fā)明所述的裝置中,所述事先指定的所有類型的二值化算法包括中值濾波算法、大律法和局部算法。
[0050