1.一种融合哈尔变换的空域彩色图像盲水印方法,包含彩色图像数字水印的嵌入过程和提取过程,其水印嵌入的具体过程描述如下:Step 1:彩色宿主图像的预处理:将大小为M×M的24位彩色宿主图像H作分层处理,得到红、绿、蓝三个分层宿主图像Hp,并将各层中的像素划分为2×2的非重叠图像块,p=1,2,3分别表示红、绿、蓝三层;
Step 2:彩色水印图像的预处理:对大小为N×N的24位彩色水印图像W作分层处理,得到红、绿、蓝三个分层水印图像,随之对每层水印图像进行基于私钥Kp的仿射变换得到置乱后的分层水印图像Wp,p=1,2,3分别表示红、绿、蓝三层;然后,将各分层水印图像Wp中的每个十进制像素值转换为一个8位的二进制序列,并依次拼接为水印字符串wtp,p=1,2,3分别表示红、绿、蓝三层;
Step 3:选择水印嵌入块:利用选块矩阵S从分层宿主图像Hp中选择水印嵌入块haarblock,其中,选块矩阵S由MATLAB内置函数randperm伪随机生成,p=1,2,3分别表示红、绿、蓝三层;
Step 4:求得水印嵌入块的最大能量系数:根据哈尔变换原理,利用公式(1),在空域中直接计算出水印嵌入块haarblock经哈尔变换后矩阵HR的第一行第一列元素HR(1,1),HR(1,1)即为该图像块的最大能量系数Emax;
(1)
其中,haarblock(i, j)为水印嵌入块haarblock第i行第j列的像素值;
Step 5:计算最大能量系数的上下边界:按照先后顺序从水印字符串wtp中选取水印位w,利用公式(2)、(3),分别求得最大能量系数Emax的上边界Eupper、下边界Elower;
(2)
(3)
其中,Emax是在空域中计算得到的水印嵌入块haarblock的最大能量系数,mod(.)是求余函数,Tp是第p个颜色通道中的量化步长, 为量化系数,0< <0.5,p=1,2,3分别表示红、绿、蓝三层;
*
Step 6:计算最优边界值:利用公式(4)求得最大能量系数Emax的最优边界值Emax ;
(4)
其中,Eupper、Elower分别为最大能量系数的上、下边界值,abs(.)是取绝对值函数;
Step 7:求得含水印图像块:根据公式(5),将最大能量系数的变化量分配到图像块的*每一个像素中,得到含水印图像块haarblock ;
(5)
其中,最大能量系数的变化量 ,haarblock(i, j)为水印嵌入块haarblock第i行第j列的像素值, ;
Step 8:获得含水印宿主图像:重复执行本过程的Step 3‑Step 7,直到所有的水印位* *都被嵌入为止;最后重组三层含水印的分层宿主图像Hp 得到含水印彩色宿主图像H ;
其水印提取的具体过程描述如下:
*
Step 1:彩色含水印宿主图像的预处理:将含水印彩色宿主图像H 的大小调整为M×M并*作分层处理,得到红、绿、蓝三层含水印的分层宿主图像Hp ,并将各分层宿主图像中的像素划分为2×2的非重叠图像块,p=1,2,3分别表示红、绿、蓝三层;
*
Step 2:选取含水印图像块:利用选块矩阵S从分层宿主图像Hp 中选择含水印图像块*haarblock ,其中,选块矩阵S由MATLAB内置函数randperm伪随机生成,p=1,2,3分别表示红、绿、蓝三层;
Step 3:求得含水印图像块的最大能量系数:根据哈尔变换原理,利用公式(6),在空域* *中直接计算出含水印图像块haarblock 经哈尔变换后矩阵HR的第一行第一列元素HR (1,* * *
1),HR (1,1)即为图像块haarblock的最大能量系数Emax ;
(6)
* *
其中,haarblock (i, j)为含水印图像块haarblock 第i行第j列的像素值, ;
* *
Step 4:提取水印位:利用公式(7)提取含水印图像块haarblock 中含有的水印位w ;
(7)
*
其中,mod(.)是求余函数,Tp是第p个颜色通道中的量化步长,Emax 是在空域中计算得到*的含水印图像块haarblock的最大能量系数,p=1,2,3分别表示红、绿、蓝三层;
Step 5:提取所有的水印位:重复执行本过程的Step 2‑Step 4,直到提取所有的水印* *位w ,依次连接得到含水印字符串wtp ,p=1,2,3分别表示红、绿、蓝三层;
*
Step 7:获得各分层水印图像:依次取wtp 的8位组成二进制序列并转换成十进制的像素值,重复该操作,直到所有的序列都被转换为十进制的像素值;然后重新排列这些像素*值,得到3个N×N的分层水印图像Wp ,p=1,2,3分别表示红、绿、蓝三层;
*
Step 8:解密得到提取的水印图像:将每层分层水印图像Wp 进行基于私钥Kp的逆仿射*变换,并重组得到最终提取的彩色水印图像W 。