具体实施方式
图1为本发明实施例提供的图像的二维码生成方法流程图。本发明实施例针目标图像与二维码的融合,提供了一种图像的二维码生成方法,该方法具体步骤如下:
步骤S101、依据目标信息串生成二维码点阵MQR;
所述依据目标信息串生成二维码点阵MQR包括:依据所述目标信息串生成二维码,所述二维码对应第一点阵MQ,所述第一点阵MQ大小为N*N;对所述第一点阵MQ进行逆掩模处理获得所述二维码点阵MQR。
所述目标信息串包括网址信息和参数信息,所述网址信息为原始信息串在网站数据库中存储的地址信息,所述参数信息为所述网站数据库分配的信息。
原始信息串存储在网站数据库中,将网站数据库中存储原始信息串的地址信息例如网络地址Http://qr.hiprint.com.cn/,以及网站数据库分配的参数信息例如?X构成该目标信息串Http://qr.hiprint.com.cn/?X;设定容错等级后将目标信息生成二维码,该二维码对应(0,1)的第一点阵MQ,本发明实施例中第一点阵MQ的大小为41*41;对所述第一点阵MQ进行逆掩模处理获得二维码点阵MQR;
步骤S102、确定目标图像中用于融合二维码的覆盖区域,依据所述覆盖区域生成覆盖域点阵MIQR;
所述确定目标图像中用于融合二维码的覆盖区域,依据所述覆盖区域生成覆盖域点阵MIQR包括:确定所述目标图像中用于融合所述二维码的覆盖区域,所述覆盖区域的大小为M*M,且M=N*n;依据所述覆盖区域中的像素点获得第三点阵MI,并将所述第三点阵MI转换为与所述第一点阵MQ大小相同的第四点阵MIQ;依据所述第四点阵MIQ计算获得权值矩阵GIQ;对所述第四点阵MIQ进行逆掩模处理获得所述覆盖域点阵MIQR。
从目标图像中确定一个正方形的覆盖区域,该覆盖区域用于融合二维码,该覆盖区域的边长为第一点阵MQ边长的整数倍,本发明实施例选择覆盖区域的边长为41*20,即覆盖区域的大小为820*820。
所述依据所述覆盖区域中的像素点获得第三点阵MI包括:将所述覆盖区域中像素点的颜色值从RGB色空间转换到Gray色空间得到灰度图像IG;将所述灰度图像IG中灰度值大于第一阈值的像素点设置为0,将所述灰度图像IG中灰度值小于或等于所述第一阈值的像素点设置为1获得所述第三点阵MI。
根据覆盖区域中像素点的RGB空间,计算每个像素点的灰度值Gray=0.299R+0.587G+0.114B得到灰度图像IG,灰度图像IG中各灰度值Gray取值范围为[0,255]。以灰度值127为第一阈值,将灰度图像IG中灰度值大于127的像素点设置为0,将灰度图像IG中灰度值小于或等于127的像素点设置为1,生成元素取值为0或1的第三点阵MI。
通过变倍转换算法缩小第三点阵MI的大小,使变倍后的第三点阵MI的大小与第一点阵MQ大小相同,且变倍后的第三点阵MI记为第四点阵MIQ。由于第三点阵MI大小为820*820,第一点阵MQ大小为41*41,将第三点阵MI缩小为第一点阵MQ大小,一种可实现的方式是将第三点阵MI中20*20大小的像素区域记为一个目标像素点,该目标像素点的像素值选择为20*20像素区域中对应的像素点个数最多的像素值,例如20*20像素区域中像素值为1的像素点个数多于像素值为0的像素点个数,则该目标像素点的像素值确定为1;第三点阵MI所有的20*20像素区域经过相同处理后将获得大小为41*41的第四点阵MIQ。
本发明实施例可以通过多种方式依据所述第四点阵MIQ计算获得权值矩阵GIQ,使权值矩阵GIQ的权值表示权值点的重要性,即权值越大,权值点越重要。对所述第四点阵MIQ进行逆掩模处理获得覆盖域点阵MIQR。
步骤S103、依据所述二维码点阵MQR和所述覆盖域点阵MIQR生成修正二维码点阵MTemp;
所述依据所述二维码点阵MQR和所述覆盖域点阵MIQR生成修正二维码点阵MTemp包括:将所述二维码点阵MQR中冗余数据码字区域的点阵数据替换为所述覆盖域点阵MIQR中的目标元素获得所述修正二维码点阵MTemp,所述目标元素在所述覆盖域点阵MIQR中的位置与所述点阵数据在所述二维码点阵MQR中的位置相同。
由于二维码点阵MQR与覆盖域点阵MIQR的大小相同,则二维码点阵MQR中的点阵数据与覆盖域点阵MIQR中的目标元素一一对应,对于所述二维码点阵MQR中冗余数据码字区域的点阵数据,用所述覆盖域点阵MIQR中相同位置处的目标元素进行替换,经过替换处理后的二维码点阵MQR形成修正二维码点阵MTemp。
步骤S104、依据所述修正二维码点阵MTemp生成修改点阵MQTS;
所述依据所述修正二维码点阵MTemp生成修改点阵MQTS包括:依据所述覆盖域点阵MIQR和所述权值矩阵GIQ修改所述修正二维码点阵MTemp对应的数据码字和纠错码字;对修改后的所述修正二维码点阵MTemp进行掩模处理获得第七点阵MQT;将所述第七点阵MQT转换为与所述覆盖区域大小相同的修改点阵MQTS。
由于第七点阵MQT的大小为41*41,覆盖区域大小为820*820,将第七点阵MQT增大到覆盖区域大小,一种可实现的方式是将第七点阵MQT中的一个像素点记为20*20个像素点的目标像素区域,该目标像素区域中每个像素点的值都与第七点阵MQT中对应的像素点的值相同,则第七点阵MQT中的每个像素点都经过相同处理后将获得大小为820*820的修改点阵MQTS。
所述依据所述覆盖域点阵MIQR和所述权值矩阵GIQ修改所述修正二维码点阵MTemp对应的数据码字和纠错码字包括:提取所述修正二维码点阵MTemp中的数据码字和纠错码字;以所述覆盖域点阵MIQR为趋同的对象,以所述权值矩阵GIQ为调整优先级,对所述数据码字和所述纠错码字进行高斯消元处理获得处理后的数据码字和处理后的纠错码字;将所述处理后的数据码字和所述处理后的纠错码字重新写入所述修正二维码点阵MTemp中。
步骤S105、依据所述修改点阵MQTS的元素值修改所述目标图像的像素点获得最终图像。
由于修改点阵MQTS与目标图像的大小相同,则依据修改点阵MQTS的元素值修改目标图像的像素点,等同于将修改点阵MQTS和目标图像进行融合,由于修改点阵MQTS中包含有二维码信息,则最终图像中将显现出二维码信息。
本发明实施例涉及到的逆掩模处理和掩模处理均为现有处理算法,具体不再赘述。
本发明实施例通过对目标图像进行一系列图像处理获得覆盖域点阵MIQR,并将二维码对应的二维码点阵MQR中冗余数据码字区域的点阵数据替换为覆盖域点阵MIQR中的目标元素获得修正二维码点阵MTemp,由修正二维码点阵MTemp计算获得修改点阵MQTS,将修改点阵MQTS和目标图像进行融合,同时还保留了目标图像中大部分像素点的颜色值,提高了目标图像与二维码图像结合后图像的视觉效果。
在上述实施例的基础上,所述依据所述第四点阵MIQ计算获得权值矩阵GIQ包括:确定所述第四点阵MIQ中各像素点的8个邻接像素点;确定所述权值矩阵GIQ中与所述第四点阵MIQ的像素点位置相同的权值为f(h),h表示所述8个邻接像素点中像素值为1的点数,f是h的函数,且h越大,f(h)越小。
依据第四点阵MIQ通过前景均匀化的方式计算获得权值矩阵GIQ,第四点阵MIQ出边界上的像素点外都对应有8个邻接像素点,若8个邻接像素点中取值为1的点数越多,则权值矩阵GIQ中与第四点阵MIQ的像素点位置相同的权值越小,反之若8个邻接像素点中取值为1的点数越小,则权值矩阵GIQ中与第四点阵MIQ的像素点位置相同的权值越多。
所述依据所述修改点阵MQTS的元素值修改所述目标图像的像素点获得最终图像包括:若所述修改点阵MQTS的元素值为0,且所述目标图像的像素点的亮度值大于第二阈值,则不修改所述目标图像的像素点的亮度值;若所述修改点阵MQTS的元素值为1,且所述目标图像的像素点的亮度值大于第二阈值,则减小所述目标图像的像素点的亮度值;若所述修改点阵MQTS的元素值为0,且所述目标图像的像素点的亮度值小于第二阈值,则增加所述目标图像的像素点的亮度值;若所述修改点阵MQTS的元素值为1,且所述目标图像的像素点的亮度值小于第二阈值,则不修改所述目标图像的像素点的亮度值;其中,所述修改点阵MQTS的元素值与所述目标图像的像素点对应。
本发明实施例具体将目标图像的像素点从RGB空间转换到Lab空间,由Lab空间计算获得像素点的亮度值,第二阈值为140,第三阈值为72。若修改点阵MQTS的元素值为0,目标图像中与该修改点阵MQTS的元素值对应的像素点的亮度值大于140,则不修改目标图像的像素点的亮度值;若修改点阵MQTS的元素值为1,目标图像中与该修改点阵MQTS的元素值对应的像素点的亮度值大于140,则减小该目标图像的像素点的亮度值,使目标图像的像素点的亮度值在0-72范围内;若修改点阵MQTS的元素值为0,目标图像中与该修改点阵MQTS的元素值对应的像素点的亮度值小于72,则增加该目标图像的像素点的亮度值,使目标图像的像素点的亮度值在140-255之间;若修改点阵MQTS的元素值为1,目标图像中与该修改点阵MQTS的元素值对应的像素点的亮度值小于72,则不修改目标图像的像素点的亮度值。
本发明实施例通过包含有二维码的修改点阵MQTS的元素值,以及目标图像的像素点的亮暗,修改目标图像的像素点的亮度值,使二维码与目标图像融合,提高了目标图像与二维码图像结合后图像的视觉效果。
图2为本发明实施例提供的图像的二维码生成装置的结构图。本发明实施例提供的图像的二维码生成装置可以执行图像的二维码生成方法实施例提供的处理流程,如图2所示,图像的二维码生成装置20包括二维码处理模块21、目标图像处理模块22、点阵处理模块23和修改模块24,其中,二维码处理模块21用于依据目标信息串生成二维码点阵MQR;目标图像处理模块22用于确定目标图像中用于确定目标图像中用于融合二维码的覆盖区域,依据所述覆盖区域生成覆盖域点阵MIQR;点阵处理模块23用于依据所述二维码点阵MQR和所述覆盖域点阵MIQR生成修正二维码点阵MTemp;依据所述修正二维码点阵MTemp生成修改点阵MQTS;修改模块24用于依据所述修改点阵MQTS的元素值修改所述目标图像的像素点获得最终图像。
本发明实施例通过对目标图像进行一系列图像处理获得覆盖域点阵MIQR,并将二维码对应的二维码点阵MQR中冗余数据码字区域的点阵数据替换为覆盖域点阵MIQR中的目标元素获得修正二维码点阵MTemp,由修正二维码点阵MTemp计算获得修改点阵MQTS,将修改点阵MQTS和目标图像进行融合,同时还保留了目标图像中大部分像素点的颜色值,提高了目标图像与二维码图像结合后图像的视觉效果。
在图2的基础上,二维码处理模块21具体用于依据所述目标信息串生成二维码,所述二维码对应第一点阵MQ,所述第一点阵MQ大小为N*N;对所述第一点阵MQ进行逆掩模处理获得所述二维码点阵MQR;
目标图像处理模块22具体用于确定所述目标图像中用于融合所述二维码的覆盖区域,所述覆盖区域的大小为M*M,且M=N*n;依据所述覆盖区域中的像素点获得第三点阵MI,并将所述第三点阵MI转换为与所述第一点阵MQ大小相同的第四点阵MIQ;依据所述第四点阵MIQ计算获得权值矩阵GIQ;对所述第四点阵MIQ进行逆掩模处理获得所述覆盖域点阵MIQR。
目标图像处理模块22具体用于将所述覆盖区域中像素点的颜色值从RGB色空间转换到Gray色空间得到灰度图像IG;将所述灰度图像IG中灰度值大于第一阈值的像素点设置为0,将所述灰度图像IG中灰度值小于或等于所述第一阈值的像素点设置为1获得所述第三点阵MI;确定所述第四点阵MIQ中各像素点的8个邻接像素点;确定所述权值矩阵GIQ中与所述第四点阵MIQ的像素点位置相同的权值为f(h),h表示所述8个邻接像素点中像素值为1的点数,f是h的函数,且h越大,f(h)越小。
点阵处理模块23具体用于将所述二维码点阵MQR中冗余数据码字区域的点阵数据替换为所述覆盖域点阵MIQR中的目标元素获得所述修正二维码点阵MTemp,所述目标元素在所述覆盖域点阵MIQR中的位置与所述点阵数据在所述二维码点阵MQR中的位置相同;依据所述覆盖域点阵MIQR和所述权值矩阵GIQ修改所述修正二维码点阵MTemp对应的数据码字和纠错码字;对修改后的所述修正二维码点阵MTemp进行掩模处理获得第七点阵MQT;将所述第七点阵MQT转换为与所述覆盖区域大小相同的修改点阵MQTS;
修改模块24具体用于若所述修改点阵MQTS的元素值为0,且所述目标图像的像素点的亮度值大于第二阈值,则不修改所述目标图像的像素点的亮度值;若所述修改点阵MQTS的元素值为1,且所述目标图像的像素点的亮度值大于第二阈值,则减小所述目标图像的像素点的亮度值;若所述修改点阵MQTS的元素值为0,且所述目标图像的像素点的亮度值小于第二阈值,则增加所述目标图像的像素点的亮度值;若所述修改点阵MQTS的元素值为1,且所述目标图像的像素点的亮度值小于第二阈值,则不修改所述目标图像的像素点的亮度值,其中,所述修改点阵MQTS的元素值与所述目标图像的像素点对应。
点阵处理模块23具体用于提取所述修正二维码点阵MTemp中的数据码字和纠错码字;以所述覆盖域点阵MIQR为趋同的对象,以所述权值矩阵GIQ为调整优先级,对所述数据码字和所述纠错码字进行高斯消元处理获得处理后的数据码字和处理后的纠错码字;将所述处理后的数据码字和所述处理后的纠错码字重新写入所述修正二维码点阵MTemp中。
本发明实施例提供的图像的二维码生成装置可以具体用于执行上述图1所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过包含有二维码的修改点阵MQTS的元素值,以及目标图像的像素点的亮暗,修改目标图像的像素点的亮度值,使二维码与目标图像融合,提高了目标图像与二维码图像结合后图像的视觉效果。
综上所述,本发明实施例通过对目标图像进行一系列图像处理获得覆盖域点阵MIQR,并将二维码对应的二维码点阵MQR中冗余数据码字区域的点阵数据替换为覆盖域点阵MIQR中的目标元素获得修正二维码点阵MTemp,由修正二维码点阵MTemp计算获得修改点阵MQTS,将修改点阵MQTS和目标图像进行融合,同时还保留了目标图像中大部分像素点的颜色值,提高了目标图像与二维码图像结合后图像的视觉效果;通过包含有二维码的修改点阵MQTS的元素值,以及目标图像的像素点的亮暗,修改目标图像的像素点的亮度值,使二维码与目标图像融合,提高了目标图像与二维码图像结合后图像的视觉效果。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。