一維碼方向快速判斷方法
【專利摘要】本發明提供了一維碼方向快速判斷方法,其特征在于,包括以下步驟:得到第一線段;以第一線段的中點為基點,分別向左、右、上、下尋找邊緣點;若向上未找到邊緣點,且向下未找到邊緣點,則一維碼的方向為第一線段的方向;若向左、右、上、下分別找到左邊緣點、右邊緣點、上邊緣點、下邊緣點,則取直線一或直線二的方向為一維碼的方向。本發明利用一維條碼本身的幾何平行、對稱特性,以簡單的少數運算,快速、準確地得到條碼方向,使解碼更快速、成功率更高。
【專利說明】
一維碼方向快速判斷方法
技術領域
[0001 ]本發明涉及一種對一維碼的方向進行快速判別的方法。
【背景技術】
[0002]—維碼的方向判斷準確率要求較高,一般只允許少量角度的誤差。結合圖1,線段AB表示掃描設備的掃描線,當掃描線與條碼左側邊緣(線段)無交點或與條碼右側(線段)無交點時,會導致解碼失敗。但掃描時并不能保證掃描線與條碼的角度是足夠小的,即完全可能出現解碼失敗的情況。
【發明內容】
[0003]本發明要解決的技術問題是:提高一維碼的解碼能力。
[0004]為了解決上述技術問題,本發明的技術方案是提供了一維碼方向快速判斷方法,其特征在于,包括以下步驟:
[0005]步驟1、利用掃描線對二值化后的一維碼圖像進行掃描,得到第一線段,第一線段是通過檢測二值化一維碼圖像中黑白點得到的連續黑白變化的線段區域;
[0006]步驟2、以第一線段的中點為基點,分別向左、右、上、下尋找邊緣點,邊緣點為二值化一維碼圖像黑、白邊界點;
[0007]步驟3、若向上未找到邊緣點,且向下未找到邊緣點,則一維碼的方向為第一線段的方向;
[0008]若向左、右、上、下分別找到左邊緣點、右邊緣點、上邊緣點、下邊緣點,則取直線一及直線二,其中:
[0009]直線一為連接左邊緣點與上邊緣點連線的中點及右邊緣點與下邊緣點連線的中點的直線;
[0010]直線二為連接左邊緣點與下邊緣點連線的中點及右邊緣點與上邊緣點連線的中點的直線;
[0011]步驟4、判斷直線一及直線二上黑、白交替的次數,將具有較多交替次數的直線的方向作為一維碼的方向。
[0012]優選地,在所述步驟2中,若所述第一線段的中點為黑點,則所述邊緣點為第一次從黑點變化為白點時的白點的位置;若所述第一線段的中點為白點,則所述邊緣點為第一次從黑白變化為黑點時的黑點的位置。
[0013]本發明利用一維條碼本身的幾何平行、對稱特性,以簡單的少數運算,快速、準確地得到條碼方向,使解碼更快速、成功率更高。
【附圖說明】
[0014]圖1為現有的一維碼識別示意圖;
[0015]圖2為第一線段獲取示意圖;
[0016]圖3為邊緣點獲取示意圖。
【具體實施方式】
[0017]為使本發明更明顯易懂,茲以優選實施例,并配合附圖作詳細說明如下。
[0018]本發明提供了一種一維碼方向快速判斷方法,包括以下步驟:
[0019]步驟1、獲得一維碼圖像后,對圖像進行二值化處理,得到二值化為黑點或者白點的二值化一維碼圖像。基于現有通用的技術方法利用掃描線(一般橫向或縱向)對二值化一維碼圖像進行掃描,獲得如圖2所示的第一線段CD。第一線段CD是指通過檢測黑、白點得到連續黑白變化的線段區域。
[0020]步驟2、計算邊緣點。
[0021]以第一線段CD的中點O為基點,向左、右、上、下尋找邊緣點。邊緣點指圖像黑、白邊界點。若中點O為黑點,則尋找的邊緣點為第一次從黑點變化為白點時的白點位置;若中點O為白點,則尋找的邊緣點為第一次從白點變化為黑點時的黑點位置。
[0022]步驟3、結合圖3,若向上及向下未找到上邊緣點U及下邊緣點D,則說明第一線段⑶方向與一維碼方向接近,以第一線段CD方向作為一維碼方向輸出。
[0023 ] 若找到了上邊緣點U、下邊緣點D、左邊緣點L及右邊緣點R,則取2個直線,分別定義為直線一及直線二。
[0024]直線一:過左邊緣點L與上邊緣點U連線的中點及下邊緣點D與右邊緣點R連線的中點的直線;
[0025 ] 直線二:過左邊緣點L與下邊緣點D連線的中點及上邊緣點U與右邊緣點R連線的中點的直線。
[0026]步驟4、判斷直線一及直線二上的黑、白點交替的次數,將交替次數多的直線的方向作為一維碼方向進行輸出。
[0027]本發明基于以下原理:
[0028]1.由于一維碼的條、空幾乎是相互平行的,以中點O為基點進行像4個方向尋找時,由于對稱性,有可能上邊緣點U、下邊緣點D找不到,有可能都找到。而左邊緣點L、右邊緣點R則能找到(因為左邊緣點L、右邊緣點R與第一線段CD同方向)。
[0029]如果上邊緣點U、下邊緣點D找不到,說明第一線段⑶方向幾乎與一維碼方向平行;否則在選擇的2條直線中,一條與一維碼方向平行,一條與一維碼方向垂直,垂直的這條直線將幾乎沒有黑白交替點,而平行的直線將有若干個黑白交替點。
[0030]2.除判斷條碼方向外,考慮對稱性,中點O也幾乎位于一維碼的中線位置,因此所輸出的條碼方向(直線一或直線二)解碼成功率將大大提高。
[0031]以上所述僅為本發明的實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等同變換,或直接或間接運用在相關的技術領域,均同理包括在本發明的專利保護范圍內。
【主權項】
1.一維碼方向快速判斷方法,其特征在于,包括以下步驟: 步驟1、利用掃描線對二值化后的一維碼圖像進行掃描,得到第一線段,第一線段是通過檢測二值化一維碼圖像中黑白點得到的連續黑白變化的線段區域; 步驟2、以第一線段的中點為基點,分別向左、右、上、下尋找邊緣點,邊緣點為二值化一維碼圖像黑、白邊界點; 步驟3、若向上未找到邊緣點,且向下未找到邊緣點,則一維碼的方向為第一線段的方向; 若向左、右、上、下分別找到左邊緣點、右邊緣點、上邊緣點、下邊緣點,則取直線一及直線二,其中: 直線一為連接左邊緣點與上邊緣點連線的中點及右邊緣點與下邊緣點連線的中點的直線; 直線二為連接左邊緣點與下邊緣點連線的中點及右邊緣點與上邊緣點連線的中點的直線; 步驟4、判斷直線一及直線二上黑、白交替的次數,將具有較多交替次數的直線的方向作為一維碼的方向。2.如權利要求1所述的一種一維碼方向快速判斷方法,其特征在于,在所述步驟2中,若所述第一線段的中點為黑點,則所述邊緣點為第一次從黑點變化為白點時的白點的位置;若所述第一線段的中點為白點,則所述邊緣點為第一次從黑白變化為黑點時的黑點的位置。
【文檔編號】G06K7/14GK105868675SQ201610240317
【公開日】2016年8月17日
【申請日】2016年4月18日
【發明人】劉寧
【申請人】上海皇和信息科技有限公司