點陣式二維碼編碼與解碼的制作方法
【技術領域】
[0001]本發明屬于信息存儲、識別技術領域,是一種二維碼的編碼、解碼方案。
【背景技術】
[0002]當前二維碼已經在各個領域得到很好的應用,例如物流、防偽、信息訪問、廣告推送、商品交易、電子憑證等,二維碼具有識別速度快、誤碼率低、信息存儲量大的優點。
[0003]當前常用的二維碼大約有十種左右,例如QR碼、DM碼、Code 49碼、Code 16K碼、PDF417碼、CP碼、田字碼、Code One碼、Aztec碼等,這些二維碼雖然都采用了數據糾錯技術以保證數據的完整性、可靠性,但是對二維碼印刷的都要求比較高,而在工業化、信息化社會的今天,工廠生產基本上都是基于自動流水線,自動流水線上最通用的給商品上輸出編碼的設備是打碼機,隨著技術的進步,很多打碼機輸出編碼的分辨率越來越高,可以打出一維條碼、二維條碼,但是這是以犧牲打碼的速度為代價的,而自動流水線是高速運轉的,因此在流水線上很難見到有哪家工廠采用打碼機打一維條碼或二維條碼,常見的則是使用打碼機打印出字符,內容一般是產品批號、檢驗合格信息等,由于打碼機輸出的字符連貫性較差,具有明顯的點陣特征,很難使用OCR系統進行識別。
【發明內容】
[0004]本發明的目的是解決當前二維條碼的不足,提供一種適用于打碼機輸出的二維碼,同時此二維碼又可以采用印刷方式輸出。
[0005]本發明的技術方案為:點陣式二維碼包含起始區、結束區、頭邊界區、尾邊界區、數據區,點陣按照行、列排列,由實心點和空白點組成;點陣式二維碼為矩陣型二維碼,點陣式二維碼的行大于等于3,列根據點陣式二維碼的起始區、結束區、頭邊界區、尾邊界區、數據區大小自動生成;起始區大于等于3列,上下與頭邊界區、尾邊界區相接的點陣組成,其中起始區的第一列和最后一列全部由實心點組成,中間列由連續的實心點及連續的空白點組成,用于區分數據區編碼的起始位置,起始區的第一列與頭邊界區、尾邊界區的第一個點陣點對齊;結束區大于等于3列,上下與頭邊界區、尾邊界區相接的點陣組成,其中中間列由連續的實心點及連續的空白點組成,和起始區一起區分數據區編碼的起始位置,結束區的最后一列與頭邊界區、尾邊界區的最后一個點陣點對齊;頭邊界區位于點陣式二維碼的第一行,由一組連續的實心點組成,起始和結束位置為點陣式二維碼的第一列和最后一列;尾邊界區位于點陣式二維碼的最后行,由一組連續的實心點組成,起始和結束位置為點陣式二維碼的第一列和最后一列;數據區包含內容數據及糾錯碼、格式編碼、填充碼,可以通過定義二進制“1”輸出為實心點、二進制“0”輸出為空白點,或定義二進制“0”輸出為實心點、二進制“1”輸出為空白點生成整個數據區的點陣,格式編碼定義內容數據的字符集及編碼格式、糾錯算法及糾錯級別和內容數據及糾錯碼的長度或填充區的長度,位于數據區的最前端和最后端,兩份數據互為備份;內容數據及糾錯碼位于前端格式編碼信息之后,連續排列;填充區位于內容數據及糾錯碼的后端,是當內容數據、糾錯碼、格式編碼的內容不能排滿數據區最后一列時在內容數據及糾錯碼之后填充的點陣點,可以是實心點也可以是空白點。
[0006]點陣式二維碼的輸出以實心點與背景有清晰可見的顏色反差及連續實心點之間的保留清晰可見空白區為標準,實心點為圓型、橢圓型、多邊形或方形。
[0007]在解碼點陣式二維碼時,首先通過數字光學設備獲取包含整個點陣式二維碼的數字圖像,通過數字圖像的預處理清除在點陣式二維碼輸出、使用、圖像采集過程產生的噪聲,獲取清晰的點陣式二維碼的數字圖像,再根據起始區、結束區、頭邊界區、尾邊界區的實心點校正圖像,之后通過起始區、結束區、頭邊界區、尾邊界區實心點的二維空間位置信息掃描整個點陣式二維碼數字圖像,獲取數據區所有實心點、空白點的二維空間位置信息,將此信息映射為一個由1和0組成的二維矩陣,再根據起始區、結束區中間列實心點、空白點的分布確認數據區信息讀取的起始位置,從二維矩陣中獲取格式編碼信息,根據格式編碼信息中內容數據及糾錯碼長度或填充區長度獲取內容數據及糾錯碼,通過讀取格式編碼信息獲取數據的糾錯算法及糾錯級別,對內容數據進行糾錯,通過讀取格式編碼信息獲取內容數據的字符集及編碼格式,對內容數據進行編碼,生成輸出數據。
【附圖說明】
[0008]圖1點陣式二維碼圖。
[0009]圖2點陣式二維碼分區示意圖。
[0010]圖3點陣式二維碼數據區分區示意圖。
[0011]圖4點陣式二維碼二維空間位置信息及數據區點陣映射數據表。
[0012]圖5基于ASCII編碼的字符“G”點陣輸出圖。
[0013]圖6基于ASCII編碼的字符“G”點陣輸出圖。
[0014]圖中,1-頭邊界區,2-起始區,3-結束區,4-數據區,5-尾邊界區,6_填充區,7_格式編碼區,8-內容數據及糾錯碼區,9-數據區映射二維矩陣編碼表,10-填充區,11-格式編碼區,12-內容數據及糾錯碼區。
【具體實施方式】
[0015]下面結合附圖對本發明做進一步說明。
[0016]在信息化領域,所有的信息都可以表示為一個由0和1組成的二進制的序列,例如在ASCII字符表中,字符“G”就表示為“01000111” 二進制序列,將這個二進制序列中的“0”表示為空白點“1”表示為“.”輸出一幅圖像,如圖5所示,用數字光學系統獲取這幅圖像的數字圖像,按照空白點表示為“0”,“.”表示為“1”,對數字圖像中的空白點及“?”進行識別,那么我們就可以重新得到“01000111” 二進制序列,識別出圖5所示的圖像表示的是ASCII編碼字符“G”,同理,將字符表示“G”的二進制序列“01000111”中的“0”表示為“?”,“1”表示為空白點輸出一幅圖像,如圖6所示,用數字光學系統獲取這幅圖像的數字圖像,按照空白點表示“1”,“.”表示為“0”,對這幅數字圖像中的空白點及“?”進行識另IJ,可以得到“01000111” 二進制序列,識別出圖6所示圖像表示的是ASCII編碼字符“G”,因此在點陣式二維碼的數據編碼中有兩個方案可以選擇:①空白點表示二進制“0”、實心點表示二進制“ 1 ”,②空白點表示二進制“ 1 ”、實心點表示二進制“0” ;但是在一個應用中只能選擇一個編碼方案。
[0017]如圖1所示,點陣式二維碼由實心點和空白點在二維空間按二維矩陣排列,實心點和背景之間具有清晰可辨的顏色反差,實心點之間保留清晰可見的空白區,以方便對數字圖像的分析處理;實心點為圓型、橢圓型、多邊形或方形;點陣式二維碼為矩陣型二維碼,點陣式二維碼的行數大于等于3。
[0018]如圖2所示,點陣式二維碼由頭邊界區(1)、起始區(2)、結束區(3)、數據區(4)、尾邊界區(5)組成;頭邊界區(1)位于點陣式二維碼的第一行,由一組實心點組成,起始和結束位置為點陣式二維碼的第一列和最后一列;尾邊界區(5)位于點陣式二維碼的最后一行,由一組實心點組成,起始和結束位置為點陣式二維碼的第一列和最后一列;起始區(2)位于頭邊界區(1)和尾邊界區(5)之間,上下與頭邊界區(1)和尾邊界區(5)相接,為大于等于3列點陣組成,其中起始區(2)的第一列和最后一列全部由實心點組成,中間列由連續的實心點及連續的空白點組成,用于區分數據區編碼