本发明涉及二维码领域,更具体地,涉及一种可视化二维码的编码方法。
背景技术:
随着互联网技术的快速发展,二维码由于其简单方便的特点广泛用于各个领域,比如商业广告、支付、金融、快递运输、名片和车票等。特别的,二维码在广告领域的应用,用户只需要手机扫描二维码就可以获取广告的内容,相比传统的海报,更为的方便,用户只需要拿起手机拍一下二维码,就可以通过跳转获取更为详细的内容,可以说,二维码为现实和互联网之间建立了一条大桥。但是,由于二维码只是简单的黑白条码,从现今对美观性要求越来越高的环境下,二维码显得有些简陋了,尤其对于商业广告,在广告上面嵌入传统二维码破坏了广告整体的美观性。另外一点是,从传统二维码上无法获取信息,只能扫描上面的图案,这一点带来了一些不便利性。现今对美观二维码的研究,例如在二维码中心嵌入图像,这种方法有很多局限性,例如嵌入图像不能较大,而且会对解码带来负面影响,visualead公司通过色彩干扰和弱化网格的方法改变二维码的外观,这些方法都没有改变二维码本质单调的特性,而最新的方法,例如picode在人眼美观性以及编解码速率上存在着不足。
技术实现要素:
本发明为克服上述现有技术所述的至少一种缺陷,改善现有可视化二维码美观性不足的问题,提供一种可视化二维码编码方法。
为解决上述技术问题,本发明的技术方案如下:
一种可视化二维码的编码方法,包括以下步骤:
s1:输入模块:输入图像、输入信息和输入阈值δ;
s2:图像预处理模块:根据比特流的长度重新调整图像的大小;
s3:图像通道提取模块:在重新调整形成的图像上提取图像通道作为处理的对象;
s4:图片编码模块:利用比特流对图像块编码;
s5:图像通道合成模块:将图像通道进行合成,所有比特都编码后,得到一个编码后的图像
s6:输出模块:在新的图像基础上加上可视化二维码的定位模块,形成可视化二维码。
在一种优选的方案中,步骤s1中,输入信息为原始信息通过数据编码成为原始比特流后再通过纠错编码而得到纠错码比特流。
在一种优选的方案中,纠错编码方法为基于伽罗华域(gf8)的多项式来进行纠错运算的rs(reed-solomon)纠错编码。
在一种优选的方案中,步骤s2中,根据比特流的数据长度,选择对应的模块编排方式,可以得到一个n×n的比特流编排方式;根据n×n比特流模块以及每个比特对应k×k大小的图像块来重新调整图像的大小,即调整后图像的大小为nk×nk;
在一种优选的方案中,步骤s3中,为了尽量减少编码对原来图像的破坏,应该尽量保持图像颜色的一致性。在各种颜色通道中,ycbcr图像通道的亮度通道y和颜色通道cbcr是分离的,根据这个特性,本发明方法使用ycbcr图像通道,将亮度通道y单独取出来作为编码单元ip,原图像的颜色通道cbcr保持不变。
在一种优选的方案中,步骤s4中,根据图片大小和比特流长度对图像进行分块,每一个图像块与比特流形成一一对应的关系;每一个图像块再均分为a、b、c和d四个区域,编码的方法根据这四个区域的平均值的大小排序关系来确定编码的比特。
在一种优选的方案中,假设每个比特对应4×4图像块,每个编码单元可以均分为a、b、c和d四个区域,每个区域包含4个像素,分别统计每个模块亮度值的平均值ma、mb、mc和md,通过这几个平均值值之间的排序关系来确定编码的是0或者1;可以把这四个值分为两个层次的大小比较或者三个层次、四个层次以上的比较,分的层次越多,可以进行更加细致的大小的判断,但是同时也会对解码带来困难,因为分的层次越多,每个块对应的像素数目越少,那么每个块的平均值大小对环境影响以及各种缩放等的影响会更加敏感。只选择两个层次比较对图像破坏较大,对人眼视觉不友好,而四个层次或以上会对解码的鲁棒性造成比较大的影响,基于这两点考虑,我们选择三个层次的比较:
每个图像块统计ma、mb、mc和md四个值,令
为了保证图像的解码的鲁棒性,{ma,mbc,md}三个值之间大小关系确定后,还需要让它们之间差值在一个定值之上,设置为δ,这个定值可以根据需要进行调整,可以用来平衡图片的可视性以及解码的鲁棒性;
依据编码的原则,对于输入的图像块和相应的比特,可以分为两大情况进行讨论,一种是排序正确的情况,即输入比特为’0’时,ma排在第二位或者输入比特为’1’时,ma排在第一位或者第三位;另外一种是排序错误的情况下,即输入比特为’0’时,ma排在第一位或者第三位,或者输入比特为’1’时,ma排在第二位;
在一种优选的方案中,当排序正确的情况下,可分为以下两种情况:
(1)输入比特为’0’的时候,ma排在第二位,假设mbc排在第一位,md排在第三位,ma的值保持不变,这时候只需要使得mbc和md和ma相差大于等于阈值δ,若它们之间的差值已经大于等于δ,则保持原值不变,即
mbc*-ma≥δ
ma-md*≥δ
则有
ma*=ma
(2)当输入比特为’1’的时候,ma排在第一位或者第三位,假设ma排在第一位,mbc排在第二位,md排在第三位,与第一种情况类似,ma的值保持不变,只需要使mbc和md与ma相差大于等于δ,即
ma-md*≥δ
ma-mbc*≥δ
则有
ma*=ma
在一种优选的方案中,当排序错误的情况下,必须使排序回到正确的排序上,有两种情况:
(1)输入比特为’0’的时候,ma排在第一位或者第三位,假设ma排在第一位,mbc排在第二位,md排在第三位,调整的正确顺序是,mbc排在第一位,ma排在第二位,md排在第三位,为了尽量减小值的变动太大影响图片的美观性,这里采取中值交换法计算值的改变量,即
mbc*-ma*≥δ
ma*-mdx≥δ
则有
mbc*=ma*+δ
(2)输入比特为’1’的时候,ma排在第二位,假设mbc排在第一位,md排在第三位,为了尽量减小值的变动太大影响图片的美观性,ma与离得近的值交换位置,假设mbc离ma距离近,即mbc-ma≤ma-md,则对应的计算如下
ma*-mbc*≥δ
ma*-md*≥δ
则有
ma*=mbc*+δ
在一种优选的方案中,当计算完毕的时候,为了保持改变后的图像块和原来的图像块的平均值一致性,必须对每个块的改变值做一个归零化处理,假设ma、mbc和md的改变量分别为δa、δbc和δd,则有
δa=ma*-ma
δbc=mbc*-mbc
δd=md*-md
进行归零化处理过程中,δbc占有两个图像块,δa和δb各占有一个图像块,则统计改变量的总和为
δm=δa+2*δbc+δd
归零化处理后各个块的改变量为
δa*=δa-δm
δbc*=δbc-δm
δd*=δd-δm
最后将δa*、δbc*和δd*扩散到对应的块,即对应的块的像素值加上对应的改变量,则对应图像块的像素值经过改变后的值为:
与现有技术相比,本发明技术方案的有益效果是:一种可视化二维码的编码方法,提供基于信息隐藏的图片二维码的设计,采用单位像素块的平均值作为运算目标,通过排序的方法确定编码的比特的方法。从美观性角度,此编码方法在保证了解码鲁棒性的同时改善了图片编码的美观性,更符合人眼特性;从速度角度,此编码和解码方法节约了编码和解码的时间,更能适应现实环境的使用情况。
附图说明
图1为本发明实施例1可视化二维码的编码流程图。
图2为本发明实施例2实施1的24×24比特矩阵。
图3为本发明实施例2可视化二维码的图像块的分块图。
图4为本发明实施例2可视化二维码的探测模块。
图5为本发明实施例2生成的可视化二维码。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
如图1所示,一种可视化二维码的编码方法,包括以下步骤:
s1:输入模块:输入图像、输入信息和输入阈值δ;
s2:图像预处理模块:根据比特流的长度重新调整图像的大小;
s3:图像通道提取模块:在重新调整形成的图像上提取图像通道作为处理的对象;
s4:图片编码模块:利用比特流对图像块编码;
s5:图像通道合成模块:将图像通道进行合成,所有比特都编码后,得到一个编码后的图像
s6:输出模块:在新的图像基础上加上可视化二维码的定位模块,形成可视化二维码。
在具体实施过程中,步骤s1中,输入信息为原始信息通过数据编码成为原始比特流后再通过纠错编码而得到纠错码比特流。
在具体实施过程中,纠错编码方法为基于伽罗华域(gf8)的多项式来进行纠错运算的rs纠错编码。
在具体实施过程中,步骤s2中,根据比特流的数据长度,选择对应的模块编排方式,可以得到一个n×n的比特流编排方式;根据n×n比特流模块以及每个比特对应k×k大小的图像块来重新调整图像的大小,即调整后图像的大小为nk×nk;
在具体实施过程中,步骤s3中,为了尽量减少编码对原来图像的破坏,应该尽量保持图像颜色的一致性。在各种颜色通道中,ycbcr图像通道的亮度通道y和颜色通道cbcr是分离的,根据这个特性,本发明方法使用ycbcr图像通道,将亮度通道y单独取出来作为编码单元ip,原图像的颜色通道cbcr保持不变。
在具体实施过程中,步骤s4中,根据图片大小和比特流长度对图像进行分块,每一个图像块与比特流形成一一对应的关系;每一个图像块再均分为a、b、c和d四个区域,编码的方法根据这四个区域的平均值的大小排序关系来确定编码的比特。
在具体实施过程中,假设每个比特对应4×4图像块,每个编码单元可以均分为a、b、c和d四个区域,每个区域包含4个像素,分别统计每个模块亮度值的平均值ma、mb、mc和md,通过这几个平均值值之间的排序关系来确定编码的是0或者1;可以把这四个值分为两个层次的大小比较或者三个层次、四个层次以上的比较,分的层次越多,可以进行更加细致的大小的判断,但是同时也会对解码带来困难,因为分的层次越多,每个块对应的像素数目越少,那么每个块的平均值大小对环境影响以及各种缩放等的影响会更加敏感。只选择两个层次比较对图像破坏较大,对人眼视觉不友好,而四个层次或以上会对解码的鲁棒性造成比较大的影响,基于这两点考虑,我们选择三个层次的比较:
每个图像块统计ma、mb、mc和md四个值,令
为了保证图像的解码的鲁棒性,{ma,mbc,md}三个值之间大小关系确定后,还需要让它们之间差值在一个定值之上,设置为δ,这个定值可以根据需要进行调整,可以用来平衡图片的可视性以及解码的鲁棒性;
依据编码的原则,对于输入的图像块和相应的比特,可以分为两大情况进行讨论,一种是排序正确的情况,即输入比特为’0’时,ma排在第二位或者输入比特为’1’时,ma排在第一位或者第三位;另外一种是排序错误的情况下,即输入比特为’0’时,ma排在第一位或者第三位,或者输入比特为’1’时,ma排在第二位;
在具体实施过程中,当排序正确的情况下,可分为以下两种情况:
(1)输入比特为’0’的时候,ma排在第二位,假设mbc排在第一位,md排在第三位,ma的值保持不变,这时候只需要使得mbc和md和ma相差大于等于阈值δ,若它们之间的差值已经大于等于δ,则保持原值不变,即
mbc*-ma≥δ
ma-md*≥δ
则有
ma*=ma
(2)当输入比特为’1’的时候,ma排在第一位或者第三位,假设ma排在第一位,mbc排在第二位,md排在第三位,与第一种情况类似,ma的值保持不变,只需要使mbc和md与ma相差大于等于δ,即
ma-md*≥δ
ma-mbc*≥δ
则有
ma*=ma
在具体实施过程中,当排序错误的情况下,必须使排序回到正确的排序上,有两种情况:
(1)输入比特为’0’的时候,ma排在第一位或者第三位,假设ma排在第一位,mbc排在第二位,md排在第三位,调整的正确顺序是,mbc排在第一位,ma排在第二位,md排在第三位,为了尽量减小值的变动太大影响图片的美观性,这里采取中值交换法计算值的改变量,即
mbc*-ma*≥δ
ma*-md*≥δ
则有
mbc*=ma*+δ
(2)输入比特为’1’的时候,ma排在第二位,假设mbc排在第一位,md排在第三位,为了尽量减小值的变动太大影响图片的美观性,ma与离得近的值交换位置,假设mbc离ma距离近,即mbc-ma≤ma-md,则对应的计算如下
ma*-mbc*≥δ
ma*-md*≥δ
则有
ma*=mbc*+δ
在具体实施过程中,当计算完毕的时候,为了保持改变后的图像块和原来的图像块的平均值一致性,必须对每个块的改变值做一个归零化处理,假设ma、mbc和md的改变量分别为δa、δbc和δd,则有
δa=ma*-ma
δbc=mbc*-mbc
δd=md*-md
进行归零化处理过程中,δbc占有两个图像块,δa和δb各占有一个图像块,则统计改变量的总和为
δm=δa+2*δbc+δd
归零化处理后各个块的改变量为
δa*=δa-δm
δbc*=δbc-δm
δd*=δd-δm
最后将δa*、δbc*和δd*扩散到对应的块,即对应的块的像素值加上对应的改变量,则对应图像块的像素值经过改变后的值为:
实施例2
定义24×24为版本一,输入图像为lena图像,图像的分辨率为256×256,输入的信息为一个url(uniformresourcelocator,统一资源定位符)网络地址:http://sipi.usc.edu/services/database/index.html。
如图2所示,对信息进行数据编码和纠错码编码,形成一个24×24的0-1矩阵作为处理的信息矩阵。输入一个分辨为256×256的lena图像,以每个图像块8×8像素决定一个比特,lena图像重新调整成为分辨率192×192大小的图像。设置阈值δ=30。在重新调整形成的图像上提取图像的y通道,按照图1的流程图,按照一一对应的关系,对每个图像块和对应的比特进行如下讨论与计算。
如图3所示,对图像块的区域a、b、c和d分别计算每个区域的平均值ma、mb、mc和md,令
第一种情况当排序正确的情况下,可分为以下两种情况:
(1)输入比特为’0’的时候,ma排在第二位,假设mbc排在第一位,md排在第三位,ma的值保持不变,这时候只需要使得mbc和md和ma相差大于等于阈值δ,若它们之间的差值已经大于等于δ,则保持原值不变,即
mbc*-ma≥δ
ma-md*≥δ
则有
ma*=ma
(2)当输入比特为’1’的时候,ma排在第一位或者第三位,假设ma排在第一位,mbc排在第二位,md排在第三位,与第一种情况类似,ma的值保持不变,只需要使mbc和md与ma相差大于等于δ,即
ma-md*≥δ
ma-mbc*≥δ
则有
ma*=ma
第二种情况当排序错误的情况下,必须使排序回到正确的排序上,有两种情况:
(1)输入比特为’0’的时候,ma排在第一位或者第三位,假设ma排在第一位,mbc排在第二位,md排在第三位,调整的正确顺序是,mbc排在第一位,ma排在第二位,md排在第三位,为了尽量减小值的变动太大影响图片的美观性,这里采取中值交换法计算值的改变量,即
mbc*-ma*≥δ
ma*-md*≥δ
则有
(2)输入比特为’1’的时候,ma排在第二位,假设mbc排在第一位,md排在第三位,为了尽量减小值的变动太大影响图片的美观性,ma与离得近的值交换位置,假设mbc离ma距离近,即mbc-ma≤ma-md,则对应的计算如下
ma*-mbc*≥δ
ma*-md*≥δ
则有
ma*=mbc*+δ
当计算完毕的时候,为了保持改变后的图像块和原来的图像块的平均值一致性,必须对每个块的改变值做一个归零化处理,假设ma、mbc和md的改变量分别为δa、δbc和δd,则有
δa=ma*-ma
δbc=mbc*-mbc
δd=md*-md
进行归零化处理过程中,δbc占有两个图像块,δa和δb各占有一个图像块,则统计改变量的总和为
δm=δa+2*δbc+δd
归零化处理后各个块的改变量为
δa*=δa-δm
δbc*=δbc-δm
δd*=δd-δm
最后将δa*、δbc*和δd*扩散到对应的块,即对应的块的像素值加上对应的改变量。则对应图像块的像素值经过改变后的值为
所有比特都编码后,得到一个编码后的
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。