林钊羽,曾旺红
武汉理工大学
基于图像处理的彩色汉信码扩容研究
林钊羽,曾旺红
武汉理工大学
汉信码具有超强的汉字表示能力,信息容量高,抗污损能力强。本文以四进制为例,选取了色差较大的白、红、蓝、黑生成四色汉信码,提高了信息容量。在彩色汉信码译码过程中,通过RGB加权计算将色彩转化成灰度值,利用自适应中值滤波算法去除噪声且防止图像失真。经计算,四色汉信码的信息容量为黑白汉信码的两倍,可用于编码含大量汉字的隐秘信息。
彩色汉信码;RGB模型;灰度化;自适应中值滤波
汉信码是中国第一个具有完全自主知识产权的二维码。相对市场上流通的二维码,汉信码有其优越性:其汉字编码能力超强,汉字信息编码效率在现有二维码中最高;信息密度大,编码大量汉字字符时,相同内容的汉信码面积为快速响应二维码面积的90%、数据矩阵码的63.7%,是编码汉字信息的首选码制[3,4];抗污损、抗畸变能力强,汉信码在码图放置和纠错识读算法方面进行了优化。因此,汉信码适合于中国市场。
二维码的信息容量较一维码有了可观的提升,能描述更多的商品信息,但是其信息容量还是在一定程度上限制了其部分应用。汉信码的独特优势使其成为扩容的理想二维码,为汉信码增加更多颜色能达到扩容的效果。
2、彩色汉信码的编码设计
由于通用移动设备的分辨率限制,如果二维码的图片尺寸和密度过大,识别效率、识别结果将会受到影响。识别时间过长也会导致人们失去耐心。当然,对于尺寸大、密度高的二维码,可以将位图传到电脑或移动设备的识读器上进行解码,不受设备精度影响,这样一来,二维码更多地起到加密的作用。
在研究编码方案前,首先要明确编码容量与数据容量的区别。编码容量是指二维码最多能表示的字符集中的字符数。而数据容量是指二维码能够存储的最大信息量。现有的二维码中,QR码、汉信码均足已能够表示常用汉字,提高编码容量意义不大,而提高数据容量则为本论文研究重点。
2.1扩容方案
方案一:原本1个码字包含8个模块,每个模块放置1个二进制位,改进为每个模块放置更多的二进制位[3,4]。以每个模块放入2个二进制位为例,则仅用一个码字便可以表示原来两个码字才能表示的信息。每个模块的数字位的可能取值为:00、01、10、11,普通汉信码的黑白两色不够,需要增加到四种颜色表示这些可能的取值。
方案二:原本黑白两色代表二进制数字0和1,现在更改编码规则,使用n(n=2k,k=2、3、4…)种颜色代表n进制,即在将输入信息转换为数字位流的过程中,按一定规则编码后,生成n进制序列作为字符编码,模式指示符和结束符。每k位二进制数可以转换为1位n进制数,改进后彩色汉信码的容量将为原来的k倍。汉信码用手持设备扫描时,k不宜过大。本论文选取四进制(n=4)进行论述,二进制到四进制的数值转换对应关系为:(00)bin-(0)qua、(01)bin-(1)qua、(10)bin-(2)qua、(11)bin-(3)qua。
两种扩容方案的区别:方案一是在数据排布时进行空间压缩,信息位流并没有改变;方案二则通过使用更高的进制对信息位流进行压缩,数据排布规则不变。方案二可同时提高编码容量和信息容量,分别变为原来的(n/2)k倍和k倍。本论文选用方案二。
2.2颜色的选取
颜色的选取是彩色二维码研究的重要部分,既要保证图像预处理对色彩易于分辨,即颜色区分度大,又要考虑颜色的协调性和美观性。本文需要四种填充颜色,因此可以在普通汉信码黑、白两色的基础上,添加两种易于识别且相互之间不易干扰的颜色构成彩色二维码。
我们知道,光的三原色是红、绿、蓝。这三种颜色不能由任何其他颜色混合产生,无法被分解,而且RGB颜色值差距大,任意两种都可以作为彩码的颜色填充颜色。为了确保识读的准确性,本文选取相关性大的四种颜色——白、蓝、红、黑作为彩色二维码的填充颜色,分别对应数据位流值0、1、2、3。
2.3彩色汉信码编码过程
汉信码数据编码模式有八种,包括:数字模式、Text模式、二进制字节模式、常用汉字一区模式、常用汉字二区模式、GB 18030双字节区模式、GB 18030四字节区模式和ECI模式[1]。每种模式有对应的模式指示符和模式结束符,全部应转换为四进制。
以常用汉字一区模式为例说明编码规则。彩色汉信码常用汉字一区模式的模式指示符为(10)qua,模式结束符为(333333)qua。其编码对象共4074个,为GB 18030双字节二区里第一字节在B0hex~D7hex、第二字节在A1hex~FEhex(共3760个)范围内的汉字或字符,以及GB 18303双字节一区里第一字节在A1hex~A3hex、第二字节在A1hex~FEhex(共282个)和A8A1hex~A8C0hex(共32个)范围内的汉字或字符。
编码步骤如下:
Ⅰ.若编码对象在GB 18030双字节二区里第一字节在B0hex~D7hex、第二字节在A1hex~FEhex范围内:
(1)第二字节减去A1hex,得到结果a;
(2)第一字节减去B0hex,得到结果b;
(3)b乘以5Ehex,得到结果c;
(4)a与c相加,得到结果d;
(5)将d转换为六位四进制序列。
Ⅱ.若编码对象在GB 18303双字节一区里第一字节在A1hex~A3hex、第二字节在A1hex~FEhex范围内:
(1)第二字节减去A1hex,得到结果a;
(2)第一字节减去A1hex,得到结果b;
(3)b乘以5Ehex,得到结果c;
(4)a与c相加,再加上EB0hex,得到结果d;
(5)将d转换为六位四进制序列。
Ⅲ.若编码对象在GB 18303双字节一区里在A8A1hex~A8C0hex范围内:
(1)第二字节减去A1hex,得到结果a;
(2)a加上FCAhex,得到结果b;
(5)将b转换为六位四进制序列。
计算出属于常用汉字一区模式的汉字二进制序列后,按输入顺序依次连接,在其首尾分别加模式指示符和模式结束符,即构成常用汉字一区模式的信息位流[2]。
例如:读取字符“全”,其字节值为C8ABhex,编码过程如下:
(1)ABhex减去A1hex,得到结果0Ahex;
(2)C8hex减去B0hex,得到结果18hex;
(3)18hex乘以5Ehex,得到结果8D0hex;
(4)0Ahex与8D0hex相加,得到结果8DAhex;
(5)将8DAhex转换为六位四进制序列(203122)qua。
3.1图像预处理
彩色汉信码的译码包括图像预处理、功能寻像与符号定位、功能信息编码、建立取样网络、恢复数字码字序列、纠错译码和信息译码等七个主要步骤[3]。由于颜色的增多,彩色汉信码的图像预处理相较普通汉信码有所改变,其他的步骤基本等同于普通汉信码的处理方式。
图像预处理是条码识别系统中不可或缺的一步。译码设备在对彩色二维码译码前,需要对原图进行获取,这个步骤大多由光学镜头拍摄完成,因此,不可避免地会出现图像失真。为了提高彩码的识读率,通过对图像进行一系列的预处理,包括彩色图像灰度化、降噪处理、边缘检测、轮廓提取等环节来解决图像失真问题[6]。
3.2彩码灰度化
在RGB模型中有三个颜色通道R(红)、G(绿)、B(蓝),三种颜色按不同比例叠加可以得到各种颜色。当三种颜色比例相同时,得到的就是一种灰度颜色,三种颜色比例相同时的值叫灰度值。三种颜色分量值的取值范围是0-255,因此灰度值范围为0-255。RGB颜色空间中过坐标原点的对角线就是灰度值线。
本文选用的四种颜色白、蓝、红、黑的亮度区分大,在灰度化后容易区分,灰度化处理简化了译码过程,因此彩色图像灰度化是一种可行而有效的图像预处理方式。
人眼对不同的颜色有着不同程度的敏感度,根据实际情况对三种分量进行加权平均,得到灰度值W的计算公式,如公式1所示:
W=0.30R+0.59G+0.11B(公式1)
从上式可知,白色的灰度值是255,黑色的灰度值是0。
3.3降噪处理
光学设备所采集到的图像一般会含有噪声,干扰主要来自两个方面:图像的污损和光学采集设备的性能。由于目前的光学采集设备的硬件功能比较完善,这方面的干扰并不大。我们主要处理汉信码图像中的噪声,常用的方法是中值滤波。中值滤波是一种典型的非线性滤波方法,能够有效地处理脉冲信号。传统的中值滤波其基本原理是把数字图像中像素点的值用该点邻域中各点的中值代替,从而消除噪声点[3]。该方法滤波窗口大小固定,通常尺寸为3×3或5×5,滤波结果难以兼顾平滑性和图像的细节性。
为了使采集的图像能够保持原图细节,我们选用改进后的自适应中值滤波算法。
首先定义如下符号:
Wxy:滤波窗口工作区域,设像素点坐标为(x,y);
Wmax:可选取的最大窗口;
Gxy:像素点(x,y)的灰度;
Gmax:Wxy中像素点灰度最大值;
Gmin:Wxy中像素点灰度最小值;
Gmed:Wxy中像素点灰度中值;
自适应中值滤波步骤:
(1)若Gmin (2)若Wxy (3)若Gmin 该算法通过判断Gmin 很多人有这样的经历,在书店看到感兴趣的书,想要试读一番以决定是否购买,但书店的书往往封装良好,我们无法获知图书的更多信息。彩色汉信码可以解决这一问题,为读者提供图书预览功能。 图书预览是将图书的部分信息转换成二维码印刷在书的封面上,读者在不能拆封新书而想了解图书的情况下,通过手持设备扫描彩色二维码阅读图书信息。由于彩色汉信码的信息容量在普通汉信码的基础上扩大了几倍,例如本文中的四色汉信码最多能存储一千多个汉字,封面上的彩色汉信码可以摘取书中的重点片段或图书的目录提供一定信息供读者参考。 图书预览只是彩色汉信码应用的一个领域。彩色汉信码具有汉字压缩表达能力强、保密性高、信息容量大、抗污损能力强等特点,适合于存储大量汉字的场景,在信息传输、信息追踪、信息管理等方面都有广阔的应用前景。 本文提出两种彩色汉信码扩容思想,对比了两种思想的差异,选取了可同时提高编码容量的方案二,将编码规则中的二进制改为四进制。在颜色选取方面,本文选取了区分度较大的四种颜色。译码时,通过将色彩灰度化简化译码操作。本文采用了自适应中值滤波算法去除图像中的噪音,防止图片失真。实验结果表明,扩容后的四色汉信码信息容量为普通汉信码的两倍,有效提高了信息容量。从长远看来,彩色汉信码还可以编码音频和图片信息,以实现更加广泛的应用,这也是我们进一步的研究目标。 [1]中国物品编码中心.GB/T 21049-2007中华人民共和国国家标准——汉信码[S].北京:中国标准出版社,2007. [2]吴昊.国标汉信码的分析与实现——编码过程的设计与实现[D].北京:北京航空航天大学,2010. [3]李朝辉.基于图像处理的彩色二维条码的研究[D].天津:天津工业大学,2010. [4]袁远松.具有高压缩比汉字编码能力的彩色二维条码的设计与实现[D].杭州:浙江工业大学,2008. [5]张霞,葛芦生.自适应中值滤波算法的研究与应用[J]微计算机信息,2007,06:217-218+237. [6]何成平,龚益民,俞亚珍.汉信码图像预处理技术及实现[J].包装工程,2010,01:72-75. 林钊羽(1995-),女,民族:汉,湖北孝感人,学历:本科在读,主要研究方向:二维码生成与识别; 曾旺红(1994-),女,民族:汉,湖南常德人,学历:本科在读,主要研究方向:二维码生成与识别。4 彩色汉信码的应用
5 结束语