基于patchwork方法的图像水印技术
2023-09-20李美燕孙孟卓
李美燕,孙孟卓,李 德
(延边大学工学院 吉林 延吉 133002)
0 引言
随着科技和技术的发展数字水印的应用领域一直扩大,数字水印技术是保护信息安全、实现版权保护和解决版权纠纷等问题的有效方法[1]。目前已经有很多种数字水印方法被研究和应用,试图在空间域、变换域和压缩域等域层尽可能做数字水印方法的扩展,尝试更多的可能性[2-3]。本文利用数字水印技术中的典型patchwork方法和时频域的改进算法探究了patchwork方法的鲁棒性。
1 基于patchwork的数字水印算法
1.1 patchwork水印嵌入方法
基于patchwork方法进行水印的嵌入,具体流程为:(1)读入载体图像,得到uint8类型图像文件参数,将参数赋给另一个参数,现在就有两个相同的图像信息参数备用。(2)将其中一个参数改为双精度浮点类型备用,并通过参数获取矩阵的行数和列数。(3)通过循环运算,将像素点行列数相加之和能被2整除的像素点的像素值增加c,将像素点行列数相加之和不能被2整除的像素点的像素值减少c。每个挨着的像素点的所经历的像素值加减操作都不一样[4]。(4)将这个参数的图像数据写到图像文件里,得到嵌入了patchwork数字水印的图像,见图1。
图1 patchwork方法嵌入水印示意图
1.2 patchwork水印检测方法
基于patchwork方法进行水印的提取,具体流程为:(1)读入载体图像,将图像信息参数转换为double类型为运算备用,并获取矩阵的行数和列数,并设定阈值。(2)将像素点行列数相加之和能被2整除的像素点(a类)的像素值做累和运算,将像素点行列数相加之和不能被2整除的像素点的(b类)像素值做累和运算。(3)求出a类像素点的像素值的均值和b类像素点的像素值的均值。(4)判定水印的存在与否:如果两类像素点的像素值均值之差大于阈值,则认定为是有水印的,否则认定为是没有水印的,见图2。
图2 patchwork方法提取水印示意图
1.3 基于时频域的改进方法
(1)读入载体文件,将图像信息参数转换为双精度类型为运算备用。
(2)产生一个8×8的DCT变换矩阵,进行离散余弦变换。
(3)得到重构后的图像。再用典型patchwork方法进行水印的嵌入[5-6]。
2 实验结果及分析
2.1 实验运行环境及样本
本实验在MATLAB R2019a环境下对原始测试图片用典型patchwork方法添加数字水印,并在添加数字水印之后,进行各种攻击环境下的水印盲检测。再用离散余弦变换对原始测试图片做频域变换处理,用patchwork方法嵌入数字水印,进行各种攻击环境下的水印盲检测。最后对patchwork算法和patchwork改进算法经过各种攻击的图像与原图像进行余弦相似度的测试。对每个攻击测试进行分析,再对比两组实验的数据做进一步分析检测算法的鲁棒性。
2.2 攻击环境下的水印盲检测
2.2.1 典型patchwork方法
对添加了patchwork方法的数字水印的图像加入了8种攻击,实验结果如表1所示。(为了保持图像整齐良好的视觉效果,有的被改动过宽高)
表1 典型patchwork方法攻击环境下的水印盲检测
下面是对每一次实验操作的解释和总结:
(1)高斯噪声:参数设置到约0.049以上的时候,不能检测出水印。
(2)椒盐噪声:参数设置到约0.061 5以上的时候,不能检测出水印。
(3)乘性噪声:参数设置到约0.085以上的时候,不能检测出水印。
(4)泊松噪声:patchwork方法下的数字水印能够抵抗泊松噪声。
(5)剪切:只要是能得出结果的经过剪切的图片都能检测到水印的存在,patchwork方法对剪切攻击有着非常强的鲁棒性。
(6)旋转:patchwork方法下的数字水印不能抵抗旋转攻击。
(7)腐蚀:patchwork方法下的数字水印不能抵抗腐蚀攻击。只有当se = strel('disk',0);时才会显示有水印,而做了一组对照实验,根据实验结果显示此时它的数据与只加了水印但是没有经历任何攻击的实验结果完全相同,说明当参数为0时,并没有对图片进行腐蚀。所以该方法无法承受腐蚀攻击。
(8)膨胀:只对膨胀强度是se = strel('ball',2,1);的时候可以检测出水印。对于se = strel('ball',a,b);当se = strel('ball',2,1);时能够检测出水印,当a=2,b=2和a=2,b=3和a=2,b=4时,通过对比数据,与a=2,b=1的实验结果的各项数据是完全相同的,皆能检测出水印。推论:当b>=a时,实验结果与se = strel('ball',a,a-1);完全相同。a->半径,b->高度,不可以类比成画图是x和y,这个ball它只能做成椭圆形而且当高度大于等于半径时,结果是无效且等于高度=半径-1时的实验结果,且参数只能是整型的。
另外,用patchwork方法在各种攻击下进行图像与原始图像的余弦相似度测试,结果如表2所示。
表2 典型patchwork经攻击后图像与原始图像的余弦相似度
2.2.2 时域结合算法与检测结果
对时域结合算法添加数字水印的图像进行了与上个实验相同的8种攻击,实验结果为:
(1)高斯噪声:参数设置到约0.053以上的时候,不能检测出水印,比典型patchwork方法对抗高斯噪声的能力较有提升。
(2)椒盐噪声:参数设置到约0.062以上的时候,不能检测出水印,比典型patchwork方法对抗椒盐噪声的能力较有提升。
(3)乘性噪声:参数设置到约0.089以上的时候,不能检测出水印,比典型patchwork方法对抗乘性噪声的能力较有提升。
(4)泊松噪声:时域结合算法添加数字水印的图像也能够抵抗泊松噪声。
(5)剪切:时域结合算法添加数字水印的图像对剪切的攻击也同样有着非常强的鲁棒性。
(6)旋转:时域结合算法添加数字水印的图像也不能抵抗旋转攻击。
(7)腐蚀:时域结合算法添加数字水印的图像不能抵抗腐蚀攻击。
(8)膨胀:只对膨胀强度是se = strel('ball',2,1);的时候可以检测出水印。
另外,用时频域变换在各种攻击下进行图像与原始图像的余弦相似度测试,结果如表3所示。
表3 时频域变换经攻击后水印图像与原始图像的余弦相似度
3 结果
通过上述实验结果分析可知,patchwork方法的数字水印对于高斯噪声、椒盐噪声、乘性噪声、泊松噪声和膨胀攻击都有不错的鲁棒性和抵抗能力,patchwork方法对于剪切攻击也有着非常好的抵抗能力,但是不能抵抗旋转攻击和腐蚀攻击。基于时频域改进算法的数字水印,其抵抗高斯噪声、椒盐噪声和乘性噪声的能力,通过明显的数据对比,较只通过patchwork方法加上水印的有着更好的抵抗能力,对泊松噪声和膨胀攻击也都有一定的鲁棒性和抵抗能力,增强了鲁棒性,但也不能抵抗旋转攻击和腐蚀攻击。通过两组水印实验结果的余弦相似度的对比可以看出,在高斯噪声、椒盐噪声、乘性噪声、泊松噪声和剪切攻击下可以检测出水印,但时频域结合算法图像比原始图像的余弦相似度更低,进一步提高了典型patchwork方法的鲁棒性。
4 结语
本文通过patchwork算法为数字图像添加水印,提取水印,利用攻击环境下的水印盲检测探究该算法的鲁棒性,并对典型的patchwork算法进行基于时频域的改进算法,探究改进算法的鲁棒性。通过实验证明,典型patchwork算法有较强的鲁棒性,基于时频域的改进算法进一步增强了典型patchwork算法的鲁棒性。