一种基于哈尔变换的四进制彩色数字图像盲水印方法
技术领域
本发明属于网络空间安全技术领域,涉及彩色数字图像作为水印的版权保护。
背景技术
随着互联网技术的跨越式发展,彩色数字图像作为大信息量的载体,因其具有形象、生动和直观的特点,也日益走进人们的网络生活,但歪曲、篡改、剽窃等非法行为也随之而来,彩色数字图像的版权保护问题受到了人们的广泛关注。一方面,计算机软硬件技术不断深入发展,算法的安全性迎来了挑战;另一方面,彩色版权标识图像的尺寸越来越大,水印容量也面临着挑战。因此,如何充分利用变换域数字水印算法的优点设计强鲁棒性、高安全性和大容量的彩色图像数字水印算法成为目前需要解决的问题之一。
发明内容
本发明的目的是提供一种基于哈尔变换的四进制彩色数字图像盲水印方法,包含彩色图像数字水印的嵌入过程和提取过程,其水印嵌入的具体过程描述如下:
Step 1:彩色宿主图像的预处理:将大小为M×M的24位彩色宿主图像H作分层处理,得到红、绿、蓝三个分层宿主图像H p ,并将各层中的像素划分为m×m的非重叠图像块,p=1,2,3分别表示红、绿、蓝三层;
Step 2:彩色水印图像的预处理:对大小为N×N的24位彩色水印图像W作分层处理,得到红、绿、蓝三个分层水印图像,随之对每层进行基于私钥K p 的仿射变换得到置乱后的分层水印图像W p ,p=1,2,3分别表示红、绿、蓝三层;然后,将各分层水印图像W p 中的每个十进制像素值转换为一个4位的四进制序列,并依次拼接为水印字符串wat p ,p=1,2,3分别表示红、绿、蓝三层;
Step 3:构建m阶的哈尔变换矩阵har m ,其中,m为宿主图像块的分块大小;
Step 4:选择图像块:利用选块矩阵selection从分层宿主图像H p 中选择图像块haarblock,其中,选块矩阵selection由MATLAB内置函数randperm伪随机生成,p=1,2,3分别表示红、绿、蓝三层;
Step 5:求得图像块的最大能量系数:根据公式(1),利用哈尔变换矩阵har m 对图像块haarblock进行哈尔变换,得到变换后的矩阵HR,其第一行第一列元素HR(1,1)即为图像块的最大能量系数E max ;
(1)
其中,m为宿主图像块的分块大小,har m 为m阶的哈尔变换矩阵,(har m )-1为矩阵har m 的逆矩阵;
Step 6:计算最大能量系数的上下边界:按照先后顺序从水印字符串中选取水印位w,利用公式(2)、(3),求得最大能量系数的上边界E upper 和下边界E lower ;
(2)
(3)
其中,E max 是图像块haarblock的最大能量系数,mod(.)是求余函数,T是量化步长,为量化系数,,;
Step 7:计算最优边界值:利用公式(4)求得最大能量系数的最优边界值E max * ,并用其替换原最大能量系数E max ,得到新的矩阵HR * ;
(4)
其中,E upper 和E lower 分别为最大能量系数的上下边界,abs(.)是取绝对值函数;
Step 8:求得含水印图像块:利用公式(5)进行逆哈尔变换,得到含水印图像块haarblock * ;
(5)
其中,m为宿主图像块分块的大小,har m 为m阶的哈尔变换矩阵,(har m )-1为矩阵har m 的逆矩阵;
Step 9:获得含水印宿主图像:重复执行本过程的Step 4-Step 8,直到所有的水印位都被嵌入为止;最后重组三层含水印的分层宿主图像H p *得到含水印彩色宿主图像H *;
其水印提取的具体过程描述如下:
Step 1:彩色含水印宿主图像的预处理:将含水印彩色宿主图像H *作分层处理,得到红、绿、蓝三层含水印的分层宿主图像H p *,并将各分层宿主图像中的像素划分为m×m的非重叠图像块,p=1,2,3分别表示红、绿、蓝三层;
Step 2:构建m阶的哈尔变换矩阵har m ,其中,m为宿主图像的分块大小;
Step 3:选取含水印图像块:利用选块矩阵selection从分层宿主图像H p *中选择含水印图像块haarblock * ,其中,选块矩阵selection由MATLAB内置函数randperm伪随机生成,p=1,2,3分别表示红、绿、蓝三层;
Step 4:求得含水印块的最大能量系数:根据公式(6),利用哈尔变换矩阵har m 对含水印图像块haarblock * 进行哈尔变换,得到含水印的矩阵HR * ,其第一行第一列元素HR * (1,1)即为图像块haarblock * 的最大能量系数E max * ;
(6)
其中,m为宿主图像块的分块大小,har m 为m阶的哈尔变换矩阵,(har m )-1为矩阵har m 的逆矩阵;
Step 5:提取水印位:利用公式(7)提取含水印图像块haarblock * 中含有的水印位w * ;
(7)
其中,mod(.)是求余函数,T是量化步长,E max * 是图像块haarblock * 的最大能量系数;
Step 6:提取所有的水印位:重复执行本过程的Step 3-Step 5,直到提取所有的水印位,依次连接得到含水印字符串wat p *,p=1,2,3分别表示红、绿、蓝三层;
Step 7:获得各分层水印图像:依次取wat p * 的4位组成四进制序列并转换成十进制的像素值,重复该操作,直到所有的序列都被转换为十进制的像素值;然后重新排列这些像素值,得到三个N×N的分层水印图像W p * ,p=1,2,3分别表示红、绿、蓝三层;
Step 8:解密得到提取的水印图像:将每层分层水印图像W p * 进行基于私钥K p 的逆仿射变换,并重组得到最终提取的彩色水印图像W * 。
该方法通过对图像块进行哈尔变换得到变换后矩阵的最大能量系数,并将最大能量系数量化到多个区间来完成数字水印的嵌入与盲提取;该方法不仅具有较好的水印不可见性和较强的水印鲁棒性,而且还具有较高的安全性和较大的水印容量。
附图说明
图1(a)、图1(b)是两幅原始彩色宿主图像。
图2(a)、图2(b)是两幅原始彩色水印图像。
图3(a)、图3(b)是将图2(a)所示的水印依次嵌入到宿主图像图1(a)、图1(b)后所得到的含水印图像,其结构相似度SSIM值依次是0.9424、0.9346,其峰值信噪比PSNR值依次是37.2578dB、37.2189dB。
图4(a)、图4(b)是依次从图3(a)、图3(b)中提取的水印,其归一化互相关系数NC值分别是1.0000、1.0000。
图5(a)、图5(b)、图5(c)、图5(d)、图5(e)是将图3(a)所示的含水印图像依次进行JPEG2000压缩(7:1)、中值滤波(3×3)、JPEG压缩(60)、剪切(12.5%)、缩放(75%)等攻击后所提取的水印,其归一化互相关系数NC值分别是0.9962、0.9496、0.9988、0.9889、0.9999。
图6(a)、图6(b)是将图2(b)所示的水印依次嵌入到宿主图像图1(a)、图1(b)后所得到的含水印图像,其结构相似度SSIM值依次是0.9436、0.9375,其峰值信噪比PSNR值依次是37.2741dB、37.2134dB。
图7(a)、图7(b)是依次从图6(a)、图6(b)中提取的水印,其归一化互相关系数NC值分别是1.0000、1.0000。
图8(a)、图8(b)、图8(c)、图8(d)、图8(e)是将图6(a)所示的含水印图像依次进行JPEG2000压缩(7:1)、中值滤波(3×3)、JPEG压缩(60)、剪切(12.5%)、缩放(75%)等攻击后所提取的水印,其归一化互相关系数NC值分别是0.9975、0.9307、0.9988、0.9677、1.0000。
具体实施方式
本发明的目的是提供一种基于哈尔变换的四进制彩色数字图像盲水印方法,包含彩色图像数字水印的嵌入过程和提取过程,其水印嵌入的具体过程描述如下:
Step 1:彩色宿主图像的预处理:将大小为512×512的24位彩色宿主图像H作分层处理,得到红、绿、蓝三个分层宿主图像H p ,并将各层中的像素划分为4×4的非重叠图像块,p=1,2,3分别表示红、绿、蓝三层;
Step 2:彩色水印图像的预处理:对大小为32×32的24位彩色水印图像W作分层处理,得到红、绿、蓝三个分层水印图像,随之对每层进行基于私钥K p 的仿射变换得到置乱后的分层水印图像W p ,p=1,2,3分别表示红、绿、蓝三层;然后,将各分层水印图像W p 中的每个十进制像素值转换为一个4位的四进制序列(例如:十进制的像素值:135,转换为一个4位的四进制序列:“2013”),并依次拼接为水印字符串wat p ,p=1,2,3分别表示红、绿、蓝三层;
Step 3:构建m阶的哈尔变换矩阵har m ,其中,m为宿主图像块的分块大小;这里取m=4,构建的4阶哈尔变换矩阵har 4 =;
Step 4:选择图像块:利用选块矩阵selection从分层宿主图像H p 中选择图像块haarblock,其中,选块矩阵selection由MATLAB内置函数randperm伪随机生成,p=1,2,3分别表示红、绿、蓝三层;
此时,设选取的图像块haarblock=;
Step 5:求得图像块的最大能量系数:根据公式(1),利用哈尔变换矩阵har m 对图像块haarblock进行哈尔变换,得到变换后的矩阵HR,其第一行第一列元素HR(1,1)即为图像块的最大能量系数E max ;
(1)
其中,m为宿主图像块的分块大小,har m 为m阶的哈尔变换矩阵,(har m )-1为矩阵har m 的逆矩阵;此时,m=4,
4阶的哈尔变换矩阵har 4 =,
其逆矩阵(har 4 )-1=,HR=,
最大能量系数E max =HR(1,1)=228.8750;
Step 6:计算最大能量系数的上下边界:按照先后顺序从水印字符串中选取水印位w,利用公式(2)、(3),求得最大能量系数的上边界E upper 和下边界E lower ;
(2)
(3)
其中,E max 是图像块haarblock的最大能量系数,mod(.)是求余函数,T是量化步长,为量化系数,,;
此时,设选取的水印位w=‘0’,E max =228.8750,量化步长T=24,量化系数,量化系数,上边界E upper =243,下边界E lower =219;
Step 7:计算最优边界值:利用公式(4)求得最大能量系数的最优边界值E max * ,并用其替换原最大能量系数E max ,得到新的矩阵HR * ;
(4)
其中,E upper 和E lower 分别为最大能量系数的上下边界,abs(.)是取绝对值函数;此时,上边界E upper =243,下边界E lower =219,最优边界值E max * =219,HR * =;
Step 8:求得含水印图像块:利用公式(5)进行逆哈尔变换,得到含水印图像块haarblock * ;
(5)
其中,m为宿主图像块分块的大小,har m 为m阶的哈尔变换矩阵,(har m )-1为矩阵har m 的逆矩阵;此时,宿主图像块分块的大小m=4,
4阶的哈尔变换矩阵har 4 =,
其逆矩阵(har 4 )-1=,
含水印的图像块haarblock * =;
Step 9:获得含水印宿主图像:重复执行本过程的Step 4-Step 8,直到所有的水印位都被嵌入为止;最后重组三层含水印的分层宿主图像H p *得到含水印彩色宿主图像H *;
其水印提取的具体过程描述如下:
Step 1:彩色含水印宿主图像的预处理:将含水印彩色宿主图像H *作分层处理,得到红、绿、蓝三层含水印的分层宿主图像H p *,并将各分层宿主图像中的像素划分为4×4的非重叠图像块,p=1,2,3分别表示红、绿、蓝三层;
Step 2:构建m阶的哈尔变换矩阵har m ,其中,m为宿主图像的分块大小;
此时,取m=4,构建的4阶哈尔变换矩阵har 4 =;
Step 3:选取含水印图像块:利用选块矩阵selection从分层宿主图像H p *中选择含水印图像块haarblock * ;
其中,选块矩阵selection由MATLAB内置函数randperm伪随机生成,p=1,2,3分别表示红、绿、蓝三层;
此时,设选取的含水印图像块haarblock * =;
Step 4:求得含水印块的最大能量系数:根据公式(6),利用哈尔变换矩阵har m 对含水印图像块haarblock * 进行哈尔变换,得到含水印的矩阵HR * ,其第一行第一列元素HR * (1,1)即为图像块haarblock * 的最大能量系数E max * ;
(6)
其中,m为宿主图像块的分块大小,har m 为m阶的哈尔变换矩阵,(har m )-1为矩阵har m 的逆矩阵;
此时,取宿主图像块的分块大小m=4,
4阶哈尔变换矩阵har 4 =,
其逆矩阵(har 4 )-1=,HR * =,
E max * =HR * (1,1)=218.8750;
Step 5:提取水印位:利用公式(7)提取含水印图像块haarblock * 中含有的水印位w * ;
(7)
其中,mod(.)是求余函数,T是量化步长,E max * 是图像块haarblock * 的最大能量系数;
此时,T=24,E max * =218.8750,提取的水印位w * =‘0’;
Step 6:提取所有的水印位:重复执行本过程的Step 3-Step 5,直到提取所有的水印位,依次连接得到含水印字符串wat p *,p=1,2,3分别表示红、绿、蓝三层;
Step 7:获得各分层水印图像:依次取wat p * 的4位组成四进制序列并转换成十进制的像素值(例如:4位四进制序列:“2013”,转换为十进制像素值:135),重复该操作,直到所有的序列都被转换为十进制的像素值;然后重新排列这些像素值,得到三个N×N的分层水印图像W p * ,p=1,2,3分别表示红、绿、蓝三层;
Step 8:解密得到提取的水印图像:将每层分层水印图像W p * 进行基于私钥K p 的逆仿射变换,并重组得到最终提取的彩色水印图像W * 。
该方法简单快捷,鲁棒性强、安全性高、水印容量大、水印不可见性好,适用于大容量彩色数字图像作为数字水印的版权保护。
本发明有效性验证
为了证明本发明的有效性,选择如图1(a)、图1(b)所示的两幅大小为512×512的24位标准彩色图像作为宿主图像,并用如图2(a)、图2(b)所示的大小为32×32的24位彩色水印图像进行验证。
图3(a)、图3(b)是将图2(a)所示的水印依次嵌入到宿主图像图1(a)、图1(b)后所得到的含水印图像,其结构相似度SSIM值依次是0.9424、0.9346,其峰值信噪比PSNR值依次是37.2578dB、37.2189dB;图4(a)、图4(b)是依次从图3(a)、图3(b)中提取的水印,其归一化互相关系数NC值分别是1.0000、1.0000;图5(a)、图5(b)、图5(c)、图5(d)、图5(e)是将图3(a)所示的含水印图像依次进行JPEG2000压缩(7:1)、中值滤波(3×3)、JPEG压缩(60)、剪切(12.5%)、缩放(75%)等攻击后所提取的水印,其归一化互相关系数NC值分别是0.9962、0.9496、0.9988、0.9889、0.9999。
图6(a)、图6(b)是将图2(b)所示的水印依次嵌入到宿主图像图1(a)、图1(b)后所得到的含水印图像,其结构相似度SSIM值依次是0.9436、0.9375,其峰值信噪比PSNR值依次是37.2741dB、37.2134dB;图7(a)、图7(b)是依次从图6(a)、图6(b)中提取的水印,其归一化互相关系数NC值分别是1.0000、1.0000;图8(a)、图8(b)、图8(c)、图8(d)、图8(e)是将图6(a)所示的含水印图像依次进行JPEG2000压缩(7:1)、中值滤波(3×3)、JPEG压缩(60)、剪切(12.5%)、缩放(75%)等攻击后所提取的水印,其归一化互相关系数NC值分别是0.9975、0.9307、0.9988、0.9677、1.0000。
综上所述,含水印彩色宿主图像与原始彩色宿主图像相比,视觉效果差异不大,并且具有较大的PSNR值,说明该方法具有较好的不可见性;从各种受攻击图像中所提取的彩色图像数字水印具有较高的可鉴别性和较高的NC值,说明该方法具有较强的鲁棒性;同时,该算法所使用仿射变换置乱方法的密钥空间在284以上,使用的具有较高的安全性;另外,实际嵌入彩色数字图像中的二进制信息为3×213位,最大可嵌入的二进制信息为3×215,水印容量较大。因此,所嵌入的彩色图像数字水印具有较好的不可见性,满足了强鲁棒性、高安全性、大容量的彩色图像数字水印版权保护的需要。