一种适用于QR码的彩色图像数字水印嵌入和提取方法
文献发布时间:2023-06-19 11:11:32
技术领域
本发明涉及数字水印技术,特别涉及一种适用于QR码的彩色图像数字水印的嵌入和提取方法。
背景技术
互联网蓬勃发展,人们不断探索着计算机新技术,越来越多的数字产品出现在市场上,如音频、电子图书、视频以及图片等产品。数字产品的出现给我们的生活带来了便捷,让我们更加快速地获取自己需要的信息。但凡事都有利弊,随着数字产品的日益增多,盗版、侵权等问题也随之而来。随着人们维权意识的提高,数字产品的盗版、侵权也日益成为社会亟待解决的问题。
所谓数字水印,是指在图像、视频、音频等数字媒体信息中侵入某些信息,通过对这些信息的提取以达到保护数字媒体版权或者证明数字媒体真实完整性的目的。快速响应二维码(QR)通过扫描能够快速获取它所携带的信息。它具有容量大和自纠错的特点,因而使用它作为水印信息载体,不仅能够增加水印信息的有效嵌入量,还可以增强数字水印的抗攻击能力。在现有的技术中,数字水印算法也有很多,例如最低有效位(LSB)算法、离散傅里叶变换(DFT)、离散余弦变换(DCT)和离散小波变换(DWT)等单一数字水印技术。现有的这些单一的数字水印技术水印信息的嵌入量较小,并且鲁棒性及不可见性较差。如LSB受限于其隐藏原理,嵌入水印是脆弱的,难以抵抗一些有损的图像变换攻击,很难被大规模的应用;DFT抗压缩能力弱,效率低;DCT计算复杂;小波变换嵌入强度稍大就容易破坏图像的透明性。
和现有的数字水印的嵌入和提取方法相比,本发明提出的一种适用于QR码的彩色图像数字水印的嵌入和提取方法,与现有技术中对水印进行单一加密相比,该方法通过对QR码实施Logistic映射和Arnold变换来完成双重加密,增强了水印的安全性能。与现有的数字水印技术不同的是,本发明将DWT、DCT和SVD技术相结合,增强了水印的抗攻击能力,均衡了水印的不可见性和鲁棒性。
发明内容
发明目的:为了克服现有技术的不足,本发明提供一种适用于QR码的彩色图像数字水印的嵌入和提取方法。对QR码实施Logistic映射和Arnold置换,对彩色图像实施DWT、DCT和SVD操作,扩充了水印的容量,增强了水印抵御剪切、旋转等常见攻击的能力,提高了数字水印的不可见性和鲁棒性。
技术方案:为实现本发明的目的,本发明采用的技术方案是:一种适用于QR码的彩色图像数字水印的嵌入和提取方法,包括以下步骤:
步骤1:QR码水印加密,对QR码先实施Logistic映射,之后再进行Arnold置乱,获得加密后的QR码序列;
步骤2:彩色载体图像预处理,预处理之后得到一个dct系数矩阵;
步骤3:水印的嵌入,对步骤2中得到的dct系数矩阵进行奇异值分解,嵌入QR码,获取嵌入QR码水印后的彩色载体图像;
步骤4:水印的提取,从嵌入QR码后的载体图像中提取出加密后的QR码序列,对加密后的QR码序列解密,提取出QR码水印;
Logistic映射是一类简单确被广泛研究的混沌系统,他的定义为:
x
其中,x
进一步,对QR码实施Logistic映射,根据混沌序列的元素执行置换操作具体包括:
S1:根据水印大小计算置换次数C,如取水印图像的行和列中较大的一个值,记为X,或者是该数值的整数倍。为达到一定的置乱效果,C不应小于这个较大值X,以保证水印的行和列至少都被交换过一次;
S2:生成Logistic混沌序列,记录初始值和映射参数作为密钥的一部分保存,序列的长度为步骤1中计算获得的C;
S3:取混沌序列各元素的前几位有效数据,整数化并对X取模,结果表示每次置换操作的一个行或列索引;
S4:遍历QR码的行、列,将遍历QR码的行或列与混沌序列指示的行或列置换;
S5:重复步骤S4,直到完成C次置换。
进一步,Arnold置乱实现加密的手段是将图像的像素点进行置乱,二维Arnold置乱具体为:
其中,x,y∈{0,1,…,N-1},(x,y)表示置乱前的具体像素坐标,(x’,y’)表示置乱后的具体像素坐标,N为图像矩阵的阶数,代表着图像的像素。
进一步,所述步骤2中对彩色图像进行预处理具体为:
S21:把彩色图像从RGB空间转换到YCbCr空间,提取Y分量得到亮度分量图;
S22:对亮度分量图实施三级DWT变换,获得低频子图;
S23:对低频子图实施DCT变换,得到变换后的dct系数矩阵。
进一步,把彩色图像从RGB空间转换到YCbCr空间具体为:
其中,Y、Cb和Cr分别代表亮度、色度、饱和度;R、G、B分别代表红、绿、蓝三个颜色通道。YCbCr是YUV经过缩放和偏移的翻版,可以看作YUV的子集,一般人们所讲的YUV大多是指YCbCr。
设一幅大小为N*N的数字图像为f(x,y),N为2的幂,f
令
依照同样的方式进行后续层级的变换,以相同的方式将逼近子图分解成四个在分辨率为i+1且尺度为2i+1层级的子图。由于进行了相同的两次2倍间隔采样,因此每个子图的大小都变为的1/4。以此类推,可将图像分解成不同方向上及不同分辨率的多个子图。
进一步,对分量图实施三级DWT变换,获得低频子图具体为:提取YCbCr空间的Y分量,得到一个灰度图像,对其进行小波变换,即先在变换的每一层,令灰度图像和小波基做内积,其次,分别经过水平方向及垂直方向上进行两次2倍间隔的采样,将图像分解成为四个大小均为四分之一的图像:即垂直和水平方向的低频子带LL,水平方向的低频及垂直方向的高频子带LH,水平方向的高频和垂直方向的低频子带HL,对角线方向上的高频子带HH。经过一级DWT后的灰度图像分解为LL、LH、HL、HH四个大小相等的子图,在之后的小波变换中,低频子图采用如上完全相同的方式进行变化,生成更小的子图。图像中的LL子带为逼近子图,其余三个方向的子带均为细节子图。而其中逼近子图进一步可以分解为四个子图,因此若m为分解级数时,3m+1则应为总的子图个数。
低频子图代表了灰度图像的基本特征和大部分能量,由于低频分量代表灰度图像的基本特征,如果将水印嵌入低频子图中,不仅具有抵抗压缩攻击的能力,并且能够有效提取水印,使得水印的鲁棒性增强。
进一步,对低频子图LL实施DCT变换具体为:Y分量图进行三级DWT后,得到一个低频子图,将该低频子图分割成n个小块,生成n个二维矩阵,对n个二维矩阵分别进行DCT变换:
将低频子图的分割成的二维矩阵分解到不同的频域上,不同频域系数就代表该频域成分在原图像中占的比重,离散余弦变换是一个实变换,相当于离散傅里叶变换DFT的实数部分,避免了DFT运算中的复数运算。空间域二维矩阵f(i,k),0≤i≤N
其中,
奇异值分解是一种正交变换,可以将矩阵对角化,可以将矩阵分割成不同的矩阵相加,而分割后前面的系数就是SVD值。图像的本质特征是由奇异值体现的,并且图像的奇异值比较稳定,在图像遭受攻击时,奇异值变化不至过大,因此对图像实施奇异值分解可以使得水印的不可见性和鲁棒性较强。
数字图像在计算机中是以矩阵形式存储的,假设图像A∈R
进一步,所述步骤3中嵌入QR码的具体操作为:
对步骤2中所得的dct系数矩阵实施奇异值分解,即
引入强度因子α,利用加性法则嵌入QR码信息,公式如下:
Wa=S+α×W
其中,S为嵌入QR码前的对角矩阵,W为QR码信息,Wa为嵌入QR码后的对角矩阵,α为强度因子,随着α的增大,不可见性变差,相似度增加,多次实验,确定算法中的α。
进一步,所述步骤3中获取嵌入QR码的彩色载体图像具体为:
S31:对Wa矩阵实施奇异值分解,即[U
S32:对dct1实施DCT逆变换和三级小波逆变换,获得嵌入QR码的亮度分量图;
S33:将嵌入QR码的亮度分量图从YCbCr空间转换到RGB空间,最终获得嵌入QR码的彩色载体图像。
进一步,所述步骤4中从嵌入QR码后的载体图像中提取出加密后的QR码序列包括:
S41:将嵌入QR码的彩色载体图像从RGB空间转换到YCbCr空间,提取其Y分量获得亮度分量图;
S42:对亮度分量图实施三级DWT,获得低频子图LL1;
S43:对LL1实施DCT变换,即dct 2=dct 2(LL1),得到dct系数矩阵;
S44:对dct系数矩阵实施奇异值分解,[U
S45:利用S,SS,α提取双层加密后的QR码,即Wb=(SS-S)/α,可以得到水印信息。
S46:建立一个新的空矩阵Wc用于存放水印信息,当发现水印信息时,将其存入矩阵Wc中,得到加密后的QR码序列Wc。
进一步,所述加密后的QR码序列经过解密最终提取出QR码水印具体为:
将QR码序列Wc实施解密操作,先实施Arnold变换,再实施Logistic映射,获得最终提取的QR码水印Ww。
有益效果:与现有技术相比,本发明的数字水印的嵌入和提取方法具有以下:
本发明对QR码水印依次进行Logistic映射和Arnold置乱,通过双重加密提高了水印的安全性。将DWT、DCT相结合对彩色载体图像进行处理,借助SVD变换将QR码水印嵌入到彩色载体图像中,使得数字水印可以抵御JPEG压缩、旋转、剪切等常见攻击,提高了水印的不可见性和鲁棒性。
附图说明
图1是本发明中适用于QR码的彩色图像数字水印的嵌入和提取方法流程图;
图2是本发明中QR码Logistic映射的流程示意图;
图3是本发明中对彩色图像预处理的流程示意图;
图4是本发明中获取嵌入QR码的彩色载体图像的流程示意图;
图5是本发明中小波变换分解的流程示意图;
图6是本发明中从嵌入QR码后的载体图像中提取出加密后的QR码序列的流程示意图。
具体实施方式
下面结合附图和实施例对本发明的技术方案作进一步的说明。
本发明所述的一种适用于QR码的彩色图像数字水印的嵌入和提取方法,如图1所示,包括以下步骤:
101、QR码水印加密,对QR码先实施Logistic映射,之后再进行Arnold置乱,获得加密后的QR码序列;
102、彩色载体图像预处理,预处理之后得到一个dct系数矩阵;
103、水印的嵌入,对步骤2中得到的dct系数矩阵进行奇异值分解,嵌入QR码,获取嵌入QR码水印后的彩色载体图像;
104、水印的提取,从嵌入QR码后的载体图像中提取出加密后的QR码序列,对加密后的QR码序列解密,提取出QR码水印;
如图2所示,步骤101中对QR码实施Logistic映射,根据混沌序列的元素执行置换操作具体包括:
201、根据水印大小计算置换次数C,如取水印图像的行和列中较大的一个值,记为X,或者是该数值的整数倍。为达到一定的置乱效果,C不应小于这个较大值X,以保证水印的行和列至少都被交换过一次;
202、生成Logistic混沌序列,记录初始值和映射参数作为密钥的一部分保存,序列的长度为步骤201中计算获得的C;
203、取混沌序列各元素的前几位有效数据,整数化并对X取模,结果表示每次置换操作的一个行或列索引;
204、遍历行、列,将遍历行或列与混沌序列指示的行或列置换;
205、重复步骤204,直到完成C次置换;
Logistic映射是一类简单确被广泛研究的混沌系统,他的定义为:
x
其中,x
步骤101中Arnold置乱实现加密的手段是将图像的像素点进行置乱,二维Arnold置乱具体为:
其中,x,y∈{0,1,…,N-1},(x,y)表示置乱前的具体像素坐标,(x’,y’)表示置乱后的具体像素坐标,N为图像矩阵的阶数,代表着图像的像素。
图像实施T次Arnold操作后回到初始状态的特性称为Arnold置乱的周期性,且周期T与图像的像素大小N*N有关系。本发明采用Arnold置乱对QR码水印进行二次加密,QR码像素为64*64,置乱周期为48,当QR码实施30次Arnold操作后达到一定的置乱状态而实现加密,由Arnold置乱的周期性可知,再对其实施18次Arnold操作即可恢复到原QR码。
如图2所示,所述步骤102中对彩色图像进行预处理具体为:
301、把彩色图像从RGB空间转换到YCbCr空间,提取Y分量得到亮度分
量图;
302、对亮度分量图实施三级DWT变换,获得低频子图;
303、对低频子图实施DCT变换,得到变换后的dct系数矩阵;
进一步,把彩色推向从RGB空间转换到YCbCr空间具体为:
其中,Y、Cb和Cr分别代表亮度、色度、饱和度;R、G、B分别代表红、绿、蓝三个颜色通道。YCbCr是YUV经过缩放和偏移的翻版,可以看作YUV的子集,一般人们所讲的YUV大多是指YCbCr。
进一步,对分量图实施三级DWT变换,获得低频子图具体为:提取YCbCr空间的Y分量,得到一个灰度图像,对其进行小波变换。经过一级DWT后的灰度图像分解为LL、LH、HL、HH四个大小相等的子图,在之后的小波变换中,低频子图采用如上完全相同的方式进行变化,生成更小的子图。
低频子图代表了灰度图像的基本特征和大部分能量,由于低频分量代表灰度图像的基本特征,如果将水引起嵌入低频子图中,不仅具有抵抗压缩攻击的能力,并且能够有效提取水印,是的水印的鲁棒性增强
对数字图像来说,其小波变换实质上就是一种二维的离散小波变换,小波变换过程可描述为:首先在变换的每一层,令原图像和小波基做内积,其次,分别经过水平方向及垂直方向上进行两次2倍间隔的采样,将图像分解成为四个大小均为四分之一的图像:即垂直和水平方向的低频子带LL,水平方向的低频及垂直方向的高频子带LH,水平方向的高频和垂直方向的低频子带HL,对角线方向上的高频子带HH。图像中的LL子带为逼近子图,其余三个方向的子带均为细节子图。而其中逼近子图进一步可以分解为四个子图,因此若m为分解级数时,3m+1则应为总的子图个数,如图3所示,经过三级DWT变换后,一共生成了10个子图。
设一幅大小为N*N的数字图像为f(x,y),N为2的幂,f
令
依照同样的方式进行后续层级的变换,以相同的方式将逼近子图分解成四个在分辨率为i+1且尺度为2i+1层级的子图。由于进行了相同的两次2倍间隔采样,因此每个子图的大小都变为的1/4。以此类推,可将图像分解成不同方向上及不同分辨率的多个子图。
进一步,对低频子图LL实施DCT变换具体为:Y分量图进行三级DWT后,得到一个低频子图,将该低频子图分割成n个小块,生成n个二维矩阵,对n个二维矩阵分别进行DCT变换。
DCT变换就是将图像分解到不同的频域上,不同频域系数就代表该频域成分在原图像中占的比重,离散余弦变换是一个实变换,相当于离散傅里叶变换DFT的实数部分,避免了DFT运算中的复数运算。空间域二维向量之元素f(i,k),0≤i≤N
其中,
所述步骤103中嵌入QR码的具体操作为:
对步骤102中所得的dct系数矩阵实施奇异值分解,即[U,S,V]=SVD(dct),引入强度因子α,利用加性法则嵌入QR码信息,公式如下:
Wa=S+α×W
其中,S为嵌入QR码前的对角矩阵,W为QR码信息,Wa为嵌入QR码后的对角矩阵,α为强度因子,随着α的增大,不可见性变差,相似度增加,多次实验,确定算法中的α=60。
奇异值分解是一种正交变换,可以将矩阵对角化,可以将矩阵分割成不同的矩阵相加,而分割后前面的系数就是SVD值。图像的本质特征是由奇异值体现的,并且图像的奇异值比较稳定,在图像遭受攻击时,奇异值变化不至过大,因此对图像实施奇异值分解可以使得水印的不可见性和鲁棒性较强。
数字图像在计算机中是以矩阵形式存储的,假设图像A∈R
A=U×S×V
其中,S=diag(σ
步骤103中获取嵌入QR码的彩色载体图像具体为:
401、对Wa矩阵实施奇异值分解,即[U
402、将嵌入QR码的亮度分量图从YCbCr空间转换到RGB空间,最终获得嵌入QR码的彩色载体图像。
如图4所示,所述步骤4中从嵌入QR码后的载体图像中提取出加密后的QR码序列包括:
501、将嵌入QR码的彩色载体图像从RGB空间转换到YCbCr空间,提取其Y分量获得亮度分量图;
502、对亮度分量图实施三级DWT,获得低频子图LL1;
503、对LL1实施DCT变换,即dct 2=dct 2(LL1),得到dct系数矩阵;
504、对dct系数矩阵实施奇异值分解,[U
505、利用S,SS,α提取双层加密后的QR码,即Wb=(SS-S)/α,可以得到水印信息。
506、建立一个新的空矩阵Wc用于存放水印信息,当发现水印信息时,将其存入矩阵Wc中,得到加密后的QR码序列Wc;
步骤104所述加密后的QR码序列经过解密最终提取出QR码水印具体为:
将QR码序列Wc实施解密操作,先实施Arnold变换,再实施Logistic映射,获得最终提取的QR码水印Ww。
显然,所述的实施例仅仅是本发明一部分的实施例,而不是全部的实施列。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实例,都属于本发明的保护的范围。
- 一种适用于QR码的彩色图像数字水印嵌入和提取方法
- 一种基于QR码的瓦片数据数字水印生成嵌入及提取方法