1.一种基于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。
2.根据权利要求1所述的基于Sobel算子的视觉二维码生成方法,其特征在于,所述的步骤1中,具体过程是,-∞<x<∞
其中,σ表示标准差即高斯半径,σ的平方则为方差,μ指均值即期望,f(x)表示概率;此公式表示在μ附近的概率,离μ越远,即σ越大,其概率越小;离μ越近,即σ越小,其概率越大。
3.根据权利要求1所述的基于Sobel算子的视觉二维码生成方法,其特征在于,所述的步骤2中,具体过程是,采用边缘差分算子Sobel计算梯度幅值和方向,计算垂直方向的差分和水平方向的差分和梯度模,梯度方向的计算公式如下,X和Y分别代表经横向及纵向边缘检测的图像灰度值,θ=arctan(X/Y)
将没有施加阈值的半径为2的高斯模糊图像Q1的L通道应用Sobel算子,得到梯度模图T。
4.根据权利要求1所述的基于Sobel算子的视觉二维码生成方法,其特征在于,所述的步骤3中,大津法求取阈值的具体过程是,
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)计算待求取阈值的图像的目标及背景的平均灰度值和方差,目标及背景的平均
2 2
灰度值分别用μ0和μ1表示,目标及背景的方差分别用δ0 和δ1表示,无论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。
5.根据权利要求1所述的基于Sobel算子的视觉二维码生成方法,其特征在于,所述的步骤3中,提取彩色轮廓图C的过程是:梯度模图T每个像素的RGBA中,R指红色值、G指绿色值、B指蓝色值、Alpha指透明度,R、G、B均为正整数或百分数,透明度取值在0到1之间包括0和1,根据如下公式循环所有像素,更改每个像素的信息Info,当该像素的R值小于等于梯度模图T的阈值XT时,该点用白色表示;若大于梯度模图T的阈值XT;则用自定义的RGB值修改该像素信息,并且所有像素的透明度不做改变,最终得到新的彩色轮廓图C,表达式为:
6.根据权利要求1所述的基于Sobel算子的视觉二维码生成方法,其特征在于,所述的步骤7中,视觉编码的具体过程是,假若生成的原始二维码的版本号为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像素的数据信息;同时需保留原始二维码图像的三个位置探测图形及其分隔符,确定版本信息和模块大小,则校正图形的位置和大小便可确定,最终编码得到能够正确解码的视觉二维码。