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