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