本发明涉及一种三维码及动态码生成方法、介质、设备,属于动态码领域。
背景技术:
1、二维码是在平面的横向和纵向上都用黑白相间的图形表示资讯的符号。三维码是在二维码的基础上融合背景图片的产物,背景图片可以是企业标志、商标标志、产品标志、人脸、应用场景等等。三维码除了能提供相应的数据信息,还能提供视觉信息。三维码的动态显示方案采用gif动画或视频两种流媒体展现方式,其本质都是对于一系列静态图片的顺序播放,利用人眼的视觉停留原理从而产生连续的播放和影像效果。但两者之间也存在着一定的区别。gif动画包含的图片帧一般较少,通常情况下图片帧数小于100,而且每秒播放的图片数量(帧率)较低,通过循环播放达到一定的视觉效果。而视频每秒播放的图片帧数通常24帧,因此一段仅仅几秒中的短视频包含的图片帧数都较大(一般大于100帧),并且通常视频中的背景较复杂,若对每一帧进行处理生成相应的码图,计算量较大,动态码的生码实时性较差。
2、公开号为cn109934322b的专利《动态三维码的生成方法、生成装置、识别方法及识别装置》公开了:d1.预加载所述动画图片;d2.获取所述动画图片的所有图像帧;d3.对每一幅单帧图像添加所述三维码的图片的水印,得到所述融合的三维码;d4.将所述融合的三维码以gif格式进行存储。该方法所需计算量大,生码实时性差。
3、公开号为cn106778995b的专利《一种与图像融合的艺术化二维码生成方法及装置》公开了:利用高斯约旦消元法及操作码之间的异或操作,对操作码进行组合,调整操作码集合,将部分操作码的可控模块移动至校验数据区域,优先构造出控制显著性较高区域的操作码;利用操作码集合调整二维码的编码数据;将操作码与二维码的编码数据进行异或操作,改变指定位置的值,使二维码在该位置所对应的色彩值与图像二值化结果ib对应位置的色彩相同。但该技术方案的优化过程繁琐且所需计算量较大,生码实时性较差。
技术实现思路
1、为了克服现有技术中存在的问题,本发明设计了一种三维码及动态码生成方法,考虑到视频中相邻帧具有一定的相似性,对视频文件中的奇数帧和偶数帧采用不同的方法生成对应的码图:对奇数帧,不计算相似度直接融合二维码和奇数帧;对偶数帧,将动态码奇数帧作为输入初始状态,计算二维码与动态码奇数帧的相似度;无需对视频文件每一帧计算相似度,减少计算量,生码效率高,生码效果好。
2、为了实现上述目的,本发明采用如下技术方案:
3、技术方案一
4、一种三维码生成方法,包括以下步骤:
5、获取视频文件;
6、取视频文件第一帧为第一背景图像;
7、获取编码信息;根据编码信息,生成第一二维码图像;
8、将第一二维码图像中的码点切分为若干分块;
9、对第一二维码图像中的各码点,设置码点中某一分块的颜色与码点颜色一致并随机设置其他分块的颜色,重复该步骤得到多个不同的第二二维码图像;
10、计算第一背景图像与所述多个第二二维码图像的相似度,输出相似度最高的第二二维码图像;
11、融合背景图像和相似度最高的第二二维码图像,得到三维码。
12、进一步地,还包括:
13、提取背景图像的前景区域;提取前景区域的显著性图像;计算显著性图像与所述多个第二二维码图像的相似度;融合显著性图像与相似度最高的第二二维码图像,得到三维码。
14、进一步地,还包括:
15、融合第二二维码图像与背景图像或融合第二二维码图像与显著性图像,得到三维码。
16、进一步地,所述提取前景区域的显著性图像,具体步骤如下:
17、使用不同的高斯核σ1和σ2对前景区域进行卷积,得到高斯平滑图像g1和高斯平滑图像g2;将高斯平滑图像g1减去高斯平滑图像g2,得到所述显著性图像。
18、进一步地,所述计算显著性图像与二维码图像的相似度,具体步骤如下:
19、将显著性图像分为n个窗口,计算每一窗口的方差:根据窗口方差,计算显著性图像的方差;
20、将二维码图像分为n个窗口,计算每一窗口的方差;根据窗口方差,计算二维码图像的方差;
21、根据所述显著性图像的方差和二维码图像的方差,计算二维码图像与显著性图像的协方差;
22、根据所述协方差,计算显著性图像与二维码图像的相似度。
23、进一步地,所述根据协方差,计算显著性图像与二维码图像的相似度,以公式表达为:
24、
25、式中,σxy表示二维码图像与显著性图像的协方差;σ′x表示显著性图像的方差;σ′y表示二维码图像的方差;c表示常数。
26、技术方案二
27、一种三维码生成方法,包括以下步骤:
28、获取视频文件;
29、取视频文件奇数帧为第一背景图像;
30、获取编码信息;根据编码信息,生成第一二维码图像;
31、提取第一背景图像的前景区域;提取前景区域的显著性图像;
32、融合第一二维码图像与显著性图像,输出融合结果。
33、技术方案三
34、一种三维码生成方法,包括以下步骤:
35、获取视频文件;
36、取视频文件偶数帧为第一背景图像;
37、按技术方案二所述方法获取由多个奇数帧得到的多个所述融合结果。
38、提取第一背景图像的前景区域;提取前景区域的显著性图像;
39、计算显著性图像与所述多个融合结果的相似度;输出相似度最高的融合结果。
40、技术方案四
41、一种动态码生成方法,包括以下步骤
42、s1、获取视频文件;
43、s2、获取编码信息;根据编码信息,生成二维码图像;
44、s3、取视频文件第一帧为第一背景图像;将二维码图像中的码点切分为若干分块;对二维码图像中的各码点,设置码点中某一分块的颜色与码点颜色一致并随机设置其他分块的颜色,重复该步骤得到多个不同的二维码图像;计算背景图像与所述多个二维码图像的相似度;输出相似度最高的二维码图像作为动态码第一帧。
45、s4、取视频文件中第一帧之外的奇数帧为第二背景图像;提取第二背景图像的前景区域;提取前景区域的显著性图像;融合二维码图像与显著性图像,输出融合结果作为动态码奇数帧;
46、s5、取视频文件偶数帧为第三背景图像;取按步骤s4所述步骤由多个奇数帧得到的多个所述融合结果;提取第三背景图像的前景区域;提取前景区域的显著性图像;计算显著性图像与所述多个融合结果的相似度;输出相似度最高的融合结果作为动态码偶数帧;
47、组合动态码第一帧、动态码奇数帧和动态码偶数帧,得到动态码。
48、与现有技术相比本发明有以下特点和有益效果:
49、(1)本发明对二维码中码点进行切分并随机填入颜色得到多个二维码,并取多个二维码中与背景图像最相似者进行融合得到三维码,能够较快得到与原图像最相近的码图,提高码图视觉效果,计算量小。
50、(2)本发明对背景图像进行前后景分割,利用dog算法提取前景区域的显著性图像,通过相似度计算能取得与背景图像具有最相似结构特征的码图作为三维码生成结果,提高了码图艺术性。
51、(3)本发明考虑到视频中相邻帧具有一定的相似性,对视频文件中的奇数帧和偶数帧采用不同的方法生成对应的码图:对奇数帧,不计算相似度直接融合二维码和奇数帧;对偶数帧,将动态码奇数帧作为输入初始状态,计算二维码与动态码奇数帧的相似度;无需对视频文件每一帧计算相似度,减少计算量,生码效率高,生码效果好。