知識中心

KNOWLEDGE CENTER

彩色二維碼

背景技術

Datamatrix矩陣二維碼因其編碼密度高,體積小的優勢而被廣泛應用。但隨著二維碼應用領域越來越多,需要二維碼帶有的信息容量也越來越大。但在某些領域能用于標記二維碼的空間非常有限,例如,用于保存藥物化合物,核酸或痕量樣品的保存管體積很小,但數量很大且不能重復。受限于讀碼設備的分辨率和管底面積的限制,靠增加二維碼矩陣數量來提高編碼信息容量已近極限,無法通過增加編碼矩陣的數量來增加編碼信息容量。通過引入8種顏色構建彩色二維碼,使原有單一色塊所代表的1字節數據提高到三個字節,提高編碼容量至原有的三倍,即在編碼矩陣和識別符號(symbol)大小不變的條件下,原本編碼12位信息的二維碼可容納36位信息,同時相應的糾錯碼容量也增加了三倍,不僅徹底解決小面積二維碼編碼容量不足的問題還增加了二維碼解析的可靠性。盡管市面上已有一些彩色二維碼的設計方法,但其編碼和解碼方法均不能很好的兼容現有的Datamatrix標準,造成用戶系統在轉換時存在一定的難度。
綜上所述,需要發明一種新的彩色二維碼編碼和解碼方法,能夠更好的兼容Datamatrix標準,提高編碼容量。

彩色二維碼生成方法

讀取源數據信息;根據Datamtrix編碼規則中的相應規則將源數據信息轉換為二進制的數據碼流;將所述二進制的數據碼流按三個值為一組依次進行分組得到若干數據段;按照編碼映射規則將每個數據段轉換為相應的顏色,所述編碼映射規則為:將每個數據段中的1等同于255,將0等同于0;按照特定的上色順序依次將數據段中的0和255對應到RGB每個顏色通道中從而生成為特定的顏色;按照轉換的顏色和Datamtrix編碼規則里的填充規則填充色塊生成二維碼圖像。所述編碼映射規則中,所述特定的上色順序依次為紅、綠、藍時,數據段與每種顏色的對應關系為:111對應黑色,001對應藍色,010對應綠色,011對應天青色,100對應紅色,101對應品紅色,110對應黃色,000對應白色。

彩色二維碼解碼方法

首先,讀取二維碼圖像;其次,通過RGB三個顏色通道依次過濾得到三個分別對應每個顏色通道的編碼灰度圖像,根據獲得的灰度圖像確定二維碼圖像的定位區和編碼區;接著,根據解碼映射規則將每個色塊的顏色轉化為一個包含三個二進制值的數據段,所述解碼映射規則為:將灰度值接近0的等同于0,灰度值接近255的等同于1,按照特定的過濾順序將色塊的灰度值對應為由0和1構成的特定的數據段,根據數據段的排列順序,將所有數據段依次取消分組形成完整的二進制的數據碼流;最后,根據Datamtrix解碼規則中的相應規則將二進制的數據碼流轉換為源數據信息。

結論

隨著編碼信息的增大,彩色二維碼所使用的面積逐漸縮小為普通二維碼的40%(Figure 1)。在目前常用的二維碼凍存管底部可供編碼的區域最大為3*3毫米的正方形,按照高精度二維碼解碼器可有效識別的二維碼基本像素為6mils計算,每個二維碼像素為0.152毫米。3*3毫米區域最多可容納20*20的二維碼矩陣。在黑白二維碼條件下,容納信息最多為22位編碼信息和18位糾錯信息。但換成彩色二維碼后,同樣是20*20的矩陣,則可以容納62位編碼信息和36位的糾錯信息1。所以,在相同矩陣條件下,彩色二維碼擁有更多的編碼容量和糾錯容量?;蛘咴谙嗤臄祿幋a容量要求下,彩色二維碼占用更小的面積并容納更多的糾錯信息。