1.一种融合快速傅里叶变换的彩色QR码数字盲水印方法,其特征在于通过具体的水印嵌入过程和提取过程来实现的,其水印嵌入过程描述如下:第一步:图像的预处理操作:将一幅大小为M×M的24位彩色宿主图像H分为红、绿、蓝三个颜色通道Hi,将每个通道分成大小为m×m的非重叠像素块;将一幅大小为N×N的24位彩色QR码水印图像W也分为红、绿、蓝三个颜色通道Wi,并依次将每个颜色通道Wi进行基于密钥Kai的Arnold置乱变换,并将通道Wi的每一个十进制像素值转换为长度为8位的二进制数值,将Wi中的二进制数值依次拼接为水印的字符串序列SWi,SWi的总长度lenw为N×N×8,其中i=1,2,3,分别表示红、绿、蓝三个颜色通道;
第二步:定位嵌入像素块和确定待嵌入水印位:利用定位矩阵选择嵌入像素块block,该定位矩阵是由基于密钥Kbi的Hash伪随机置乱算法生成的;同时,按照顺序从对应通道的二进制字符串序列SWi中读取第j个待嵌入水印位wj,其中,1≤j≤lenw,i=1,2,3,分别表示红、绿、蓝三个颜色通道;
第三步:由公式(1),在空域中直接求得快速傅里叶变换结果中的直流分量tmax,而该直流分量不需要进行真正的快速傅里叶变换求得;
其中,p、q是像素在嵌入像素块block中行、列的位置,block(p,q)是像素块block中第p行、第q列位置的像素值,1≤p,q≤m,m是嵌入像素块block的宽度或高度;
第四步:利用公式(2)、(3)计算直流分量tmax的下边界值Clow和上边界值Chigh:其中,wj为第j个待嵌入水印位,1≤j≤lenw,floor(.)为向下取整函数,T为量化步长;
第五步:依据公式(4)从上下边界值Chigh和Clow中选取最佳边界值cc:其中,abs(.)为求绝对值函数;
第六步:计算含水印的像素块:利用公式(5)将直流分量的变化量change均匀地分布到嵌入像素块block内的所有像素上,即可得到含水印的像素块blocknew,并将其更新回相对应的颜色通道;
blocknew=block+change/(m×m) (5)其中,change=cc‑tmax,m是嵌入像素块block的宽度或高度;
第七步:循环执行第二步到第六步,直到所有的水印位被分别嵌入到分块后的三个颜*色通道为止,最后,将含水印的红、绿、蓝三个颜色通道重组即可获得含水印图像H;
其水印提取过程描述如下:
* * *
第一步:预处理含水印图像H :将含水印图像H分为红、绿、蓝三个颜色通道Hi ,其中i=
1,2,3,分别表示红、绿、蓝三个颜色通道,将每个通道划分成大小为m×m的非重叠像素块;
*
第二步:定位像素块:在颜色通道Hi 中,使用基于密钥Kbi的Hash伪随机置乱算法生成*的定位矩阵确定像素块block;
*
第三步:由公式(6),在空域中直接求得快速傅里叶变换结果中的直流分量tmax ,而该直流分量不需要进行真正的快速傅里叶变换求得;
* * *
其中,p、q是像素在像素块block中行、列的位置,block(p,q) 是像素块block 中第p*行、第q列位置的像素值,1≤p,q≤m,m是像素块block的宽度或高度;
第四步:利用公式(7)提取第j个水印位wj,其中,1≤j≤lenw;
其中,mod(.)为求余函数,round(.)为四舍五入函数;
*
第五步:循环执行第二步到第四步,分别获取各通道中的二进制字符串序列SWi ,然后*将SWi以每8位二进制字符串为一组转换为十进制的像素值,其中i=1,2,3,分别表示红、绿、蓝三个颜色通道;
第六步:将各通道的十进制像素值分别进行基于密钥Kai的逆Arnold变换,此时就获得*了各通道的水印Wi,其中i=1,2,3,分别表示红、绿、蓝三个颜色通道;
* *
第七步:重组各通道的水印Wi得到24位的彩色QR码水印图像W。