基于Sobel算子的视觉二维码生成方法与流程

文档序号:15801233发布日期:2018-11-02 21:27阅读:490来源:国知局
基于Sobel算子的视觉二维码生成方法与流程

本发明属于二维码防伪技术领域,涉及一种基于sobel算子的视觉二维码生成方法。

背景技术

随着经济和科技水平的快速发展,商业防伪需求日益旺盛,二维码作为信息传播的载体在防伪领域发挥着越来越重要的作用。二维条码是一种特殊的条码技术,简称二维码最早发明于日本,目前常用或知名的二维码编码机制有datamatrix,maxicode,qrcode,汉信码等,其中快速响应的qr码(qrcode),是由densowave公司开发的,后来成为国际标准。虽然最初是为制造工业设计的,但现在已无处不在并应用于几乎所有领域,尤其在运输、制造和零售行业中迅速成为一种广泛使用的库存跟踪和识别方法,在防伪领域中更是占有一席之地。由于智能手机的普及,很容易对在线资源进行解码和访问,又因为它的高存储量和解码速度,qr码成为日常获取特定对象/事件信息的常用形式,更成为最流行的二维码之一,因此本发明中提到的二维码皆指qr码。

qr码是一个矩阵条形码,是高对比度的黑白码,毫无美感可言,也会严重破坏其载体的审美吸引力,例如宣传海报、防伪标签等。而在全国315产品防伪查询中心网站315资讯防伪常识页面《异形二维码防伪与普通二维码防伪的区别》一文中指出,据调查结果显示,使用五颜六色的异形二维码防伪标签可提高扫描率37%,同时会提高一定极限的防伪功能。因此改善二维码视觉效果,是提高防伪性能的有效途径。

视觉二维码即对人的视觉有强大冲击力的二维码,打破传统的视觉表现形式,是将背景图片融入二维码中的一种异形二维码。表现形式主要有,局部嵌入图标、半色调qr码、改变嵌入图像的亮度等。随着研究的推进,视觉二维码的表现形式越来越多,视觉效果也不断增强。但因每个用户的审美眼光都会有很大的不同,所以视觉二维码的个性化和多样性是远远不够的,而且既要保证视觉效果又要保证稳健性并不是容易的。

提高二维码防伪性能,一直是二维码防伪领域面临的最大挑战,针对这一挑战从提高二维码扫描效率两个方向展开研究。针对现有视觉二维码存在的各种各样问题,研究一种既丰富二维码视觉效果,又能改善防伪性能的视觉二维码生成算法具有非常大的实际应用价值。



技术实现要素:

本发明提供了一种基于sobel算子的视觉二维码生成方法,解决了现有视觉二维码的表现形式单一,防伪性能差,视觉感受差的问题。

本发明采用的技术方案是,一种基于sobel算子的视觉二维码生成方法,按照以下步骤实施:

步骤1、把原始图像i进行高斯平滑处理,处理后得到图像q1;

步骤2、用sobel算法对图像q1进行边缘检测,得到梯度模图t;

步骤3、用大津法计算梯度模图t的阈值xt,并对梯度模图t进行处理生成彩色轮廓图c;

步骤4、对彩色轮廓图c进行腐蚀处理,腐蚀后得到彩色轮廓图c1,腐蚀是对图像亮区腐蚀使其变细,而相对暗色区域则变粗变大;

步骤5、生成包含相应数据信息的原始二维码q,用户需确定版本号和纠错等级,同时确定原始二维码q的尺寸;

步骤6、对彩色轮廓图c1的尺寸进行调整,使其与步骤5中的原始二维码q的图像尺寸一致,调整大小后得到彩色轮廓图c2;

步骤7、对原始二维码q和彩色轮廓图c2进行视觉编码,生成视觉二维码图像qr。

本发明的有益效果是,编码后生成的视觉二维码图像不仅保证了视觉效果,也保证了能够被二维码解码器正确解码,且丰富了视觉二维码的表现形式。常见的视觉二维码虽然都能够正确解码,但都是和整张背景图片进行融合,不仅没有突出嵌入图片的重要信息,而且让整幅视觉二维码图片显得很混乱,其美化效果并不是很好,本发明提出基于sobel算子的视觉编码二维码,将背景图片轮廓与二维码进行视觉编码以生成独有的防伪性能高、视觉效果更好的视觉二维码。

附图说明

图1是本发明基于sobel算子的视觉二维码生成方法的框图;

图2是本发明方法采用的背景图像;

图3是本发明方法对背景图片进行轮廓提取结果图;

图4是本发明方法对轮廓腐蚀结果图;

图5是本发明方法基于sobel算子的视觉二维码结果图。

具体实施方式

本发明基于sobel算子的视觉二维码生成方法,输入图像是要嵌入原始二维码q中的原始图像i,如图2;输出图像是视觉二维码,如图5。

参照图1,本发明基于sobel算子的视觉二维码生成方法,按照以下步骤实施:

步骤1、把原始图像i进行高斯平滑处理,高斯模糊半径为2,处理后得到图像q1,

高斯平滑处理主要是为了去除噪声。噪声也会集中在高频信号,容易被识别成伪边缘,运用高斯模糊去噪可降低对伪边缘的识别。因为图像边缘信息也是高频信号,因此对高斯模糊的半径选择也很重要,半径过大很容易会检测不到若边缘。

-∞<x<∞

其中,σ表示标准差即高斯半径,σ的平方则为方差,μ指均值即期望,f(x)表示概率;此公式表示在μ附近的概率,离μ越远,即σ越大,其概率越小;离μ越近,即σ越小,其概率越大。

步骤2、用sobel算法对图像q1进行边缘检测,得到梯度模图t。

采用边缘差分算子sobel计算梯度幅值和方向,计算垂直方向的差分和水平方向的差分和梯度模,梯度方向的计算公式如下,x和y分别代表经横向及纵向边缘检测的图像灰度值。

θ=arctan(x/y)

将没有施加阈值的半径为2的高斯模糊图像q1的l通道(hsl)应用sobel算子,得到梯度模图t。

步骤3、用大津法计算梯度模图t的阈值xt,并对梯度模图t进行处理生成彩色轮廓图c,如图3,

3.1)采用大津法求取阈值,

大津法是由日本学者大津在1979年提出的自适应的阈值确定方法,最大类间方差法对图像大小和噪音十分敏感,又因其用时最少也不受对比度和图像亮度的影响。大津法的算法思想为依据灰度特性,把图像分为背景和目标两部分,背景和目标之间的类间差越大,则说明构成图像的两部分的差别越大,所以类间方差最大的分割则意味着错分概率最小,分别计算每个灰度值为阈值的分割的类间方差,求得类间方差最大的值则为阈值。其具体过程为:

3.1.1)计算待求取阈值的图像的每个灰度值的概率,

pi=ni/n

pi≥0

其中pi表示灰度值为i的概率,ni指灰度级别为i的像素个数,n为所有的像素数量n=n1+n2+n3+…+nl,l表示灰度级别。

3.1.2)计算待求取阈值的图像的目标分布概率及背景分布概率,w0表示目标分布概率,w1表示背景分布概率,将像素根据阈值k分成两类分别为c0和c1,即c0是具有级别[1,…,k]的像素,c1是具有级别[k+1,…,l]的像素,表达式如下:

3.1.3)计算待求取阈值的图像的目标及背景的平均灰度值和方差,目标及背景的平均灰度值分别用μ0和μ1表示,目标及背景的方差分别用δ02和δ12表示,无论k取何值都能满足w0+w1=1以及w0μ0+w1μ1=μt,表达式如下:

3.1.4)计算待求取阈值的图像的类间差;

δb2=w0(μ0-μt)2+w1(μ1-μt)2=w0w1(μ1-μ0)2

3.1.5)类间差最大的灰度值即为所求的阈值xt。

3.2)彩色轮廓图c的提取过程是:

梯度模图t每个像素的rgba中,r指红色值、g指绿色值、b指蓝色值、alpha指透明度,r、g、b均为正整数或百分数,透明度取值在0到1之间包括0和1,

根据如下公式循环所有像素,更改每个像素的信息info,当该像素的r值小于等于梯度模图t的阈值xt时,该点用白色表示;若大于梯度模图t的阈值xt;则用自定义的rgb值修改该像素信息,并且所有像素的透明度不做改变,最终得到新的彩色轮廓图c,表达式为:

见图3;

步骤4、对彩色轮廓图c进行腐蚀处理,腐蚀后得到彩色轮廓图c1,如图4,

对彩色轮廓图c进行腐蚀处理(形态学处理),腐蚀是对图像亮区(白色背景)腐蚀使其变细,而相对暗色区域则变粗变大;显然腐蚀处理是为了增强图像轮廓,使图像与二维码融合后的视觉二维码能更清晰地显示图像信息,以此达到较好的视觉效果,见图4。

步骤5、生成包含相应数据信息的原始二维码q,用户需确定版本号和纠错等级,同时确定原始二维码q的尺寸。

步骤6、对彩色轮廓图c1的尺寸进行调整,使其与步骤5中的原始二维码q的图像尺寸一致,调整大小后得到彩色轮廓图c2。

步骤7、对原始二维码q和彩色轮廓图c2进行视觉编码,生成视觉二维码图像qr,如图5。

视觉编码的基础是保证能够正确解码,保证正确解码的基础是位置探测符和校验符能够被正确识别,因此本发明采用的视觉编码方法不改变探测符和校验符的位置和状态,即生成的视觉二维码的位置探测符和校验符与原始二维码的是一模一样的,对于其他区域则要进行相应的处理。视觉编码的具体过程是,

假若生成的原始二维码的版本号为10,纠错等级为q,则版本为10的qr码有57×57模块,一个模块有3×3像素,至少保证有一个即1/3的中心像素存储的是有效二维码数据;若模块中有一个像素存储的是二维码信息,则模块越大生成的视觉二维码视觉效果越好,但其译码效率会越低,为了兼顾两者,将视觉二维码的模块选为3×3像素,其中有一个像素为二维码信息,其余的为背景图片信息;每个模块的边长为3像素,则二维码图像的尺寸为171×171,二维码位置探测图形和位置探测图形分隔符的区域尺寸为24×24,

令c2表示调整尺寸为171×171像素的轮廓背景图像,若用l表示背景图像所有像素的rgba值组成的数组,u表示171×171像素的原始二维码图像,g表示原始二维码所有像素的rgba值组成的数组,l和g的长度都为171×171×4,乘以4是因为每个rgba值有4个数据。m值大于等于0小于等于l的长度。(p,d)表示每个像素的坐标(以(0,0)为初始点即图像左上角坐标),p和d计算公式如下。

d=(m/(4*171)),

若满足p%3!=1||d%3!=1的条件时,改变g相应位置的rgba值。该条件为视觉二维码图像的每个模块保留了原始二维码1×1像素的数据信息。同时需保留原始二维码图像的三个位置探测图形及其分隔符。确定版本信息和模块大小,则校正图形的位置和大小便可确定,最终编码得到能够正确解码的视觉二维码。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1