一种DWT域基于IFS的数字水印算法
取第二水印W2为一幅KxK的二值图像,分别通过上述变换ωi将第二水印信息影射为一个大小为2K×2K的自相似水印分形图W.映射方式如图1所示。
1.2 水印嵌入方法
数字水印的嵌入步骤如下:
(1)将原始图像进行L层小波分解得到3L+1个子带。选择L使其低频子带A系数为与自相似水印分形图W大小相同的矩阵。
(2)引入一个与自相似水印分形大小一致的二值图像B。此图像的单数行为101010…,而其偶数行为010101…,或互换。
(3)从自相似水印分形图W中取像素W(i,j)。
(4)如果W(i,j)值为0,则令A ,(i,j)=A(i,j),转入第(6)步。
(5)如果W( i,j)值为1,从参考图像B中取对应像素B(i,j);如果B(i,j)=1,则令A (i,j)=A(i,j)+d;否则,令A (i,j)=A(i,j)-d。其中d>0,取值视载体图像而定。
(6)重复(3)、(4)、(5)直到取完自相似水印分形图W中的所有像素点。
(7)利用修改后的系数矩阵进行小波反变换,重构带有水印信息的原始图像。
图2
1.3 水印检测方法
在自相似水印的提取算法中,用到了拉普拉斯(Laplace)算子与两个矩阵像素块E、F,其中E=[1 0 1;01 0;1 0 1]3×3,F=[0 1 0;1 0 1;0 1 0]3×3。
(1)将带有水印信息的图像进行L层小波分解,提取出低频子带系数矩阵。
(2)利用拉氏算子的图像边缘检测功能由待检测的系数矩阵A’生成与其大小一致的三值(0,1,2)图像G。具体生成算法如下:
①拉氏算子计算G(i,j)=A (i-1,j)+A (i+1,j)+A (i,j-1)+A (i,j+1)-4A (i,j)。
②如果G(i,j)> ε,则令G(i,j)=0;否则如果G(i,j)<-ε,则令G(ij)=1,否则G(i,j)=2。其中ε>0,其大小与d取值有关(下面ξ同ε)。
③重复上述两步,直到生成三值图像G。计算G的第1行列和最后1行列时用第2行列和倒数第2行列替代。
(3)用W 表示提取出的自相似水印分形图。由三值图像G生成W 的算法如下:
① 从G中取以G(i,j)为中心的3x3像素块,记为G33。
② 统计G33与E、F块对应位置上像素值相同的像素点个数,分别记为SE和SF。
③ 如果SE>ξ或者SF>ξ,则令W (i,j)=1;否则令W (i,j)=0;ξ>0。
③ 重复前三步,直到取完上面所有的点。求第1行列和最后1行列的补救方法与上面求三值图像的方法
(4)从W’中提取汉字水印信息。在二值图像W 中对各部分任意取三个对应点,根据变换公式确定对应变换系数,将系数变换为汉字的区位码即可得对应汉字信息。
2 实验结果
2.1 双重水印信息的鲁棒性测试
实验中载体图像采用512x512的标准L
《一种DWT域基于IFS的数字水印算法(第2页)》