DWT域基于IFS的数字水印算法

DWT域基于IFS的数字水印算法,第1张

 

介绍了一种基于IFS (Iterated FuncTIon System)的可以抵抗几何形变的空域数字水印方法。此方法的缺点是嵌入的水印信息只能是英文字母,而且对部分字母识别能力较差,水印抵抗JPEG压缩攻击的能力较弱。本文采用具有实际意义的汉字和二值图像作为水印,利用IFS生成可抵抗几何形变的双重数字水印信息,并且嵌入DWT域低频区域系数矩阵,以提高其抵抗常见图像处理攻击的能力。经实验证明,该方法对常见的攻击有较好的鲁棒性,同时满足了水印信息的不可见性。

1 水印的嵌入原理

1.1 自相似水印分形图的生成

二维IFS是研究二维图像分形压缩和编码的基础,通过对图像的旋转、缩放和扭曲、反演等变成另一自相似图像。将汉字水印信息转化为自相似分形图,也就是将汉字水印信息转化为自相似水印分形图的IFS变换参数。

其中θ、α、ι1、ι2、e、f分别为旋转角度、扭曲角度、坐标轴伸缩比例和平移参数。

汉字存储编码有区位码和机内码。这里将区位码转化为IFS参数。常用汉字的区码M范围为16~55,定义映射F:M→θ

θ=F(M) =8×(M—15)+4     (2)

(2)式是先将M转化为1~40整数,编为6位二进制编码(000001)~(101000),再在其后面添加(100),则M对应编码为(000001100)~(101000100)。通过上述变换将汉字信息区码转化为仿射变换的旋转角度,变换后θ的范围是[12,324]。

又由于常用汉字的位码N为1~94。定义映射G:N→[aa,bb]→[a,b]

[aa,bb]=G(N)=[((N+5)div(10))+6,((N+5)mod(10)+6)];    (3)

[a,b]=[(aa×16+8)/250,(bbx16+8)/250]     (4)

其中(3)式是将N变换为6~15之间的一个整数对;(4)式是将变换所得整数对分别进行二进制编码,再在各个编码后添加(1000),为保证仿射变换的压缩性,全部除以250。通过上述变换后,a,b范围是[0.416,0.992],其中[a,b)是一个实数对。

    将θ、a、b值代人上述仿射变换公式中,令α=0,e、f的值根据具体情况而定。假设水印信息W1为{S1,S2,S3:其中Si是常用汉字},根据上面定义的影射转化为迭代函数系{R2;ω0,ω1,ω2,ω3}。其中ωi(对应Si,ω0对应(θ0=0,a0=b0=1),作为第一水印检测的参考图。由于上述两个变换都是一对一映射,可以很容易求得其反变换过程。

取第二水印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)利用修改后的系数矩阵进行小波反变换,重构带有水印信息的原始图像。

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 中对各部分任意取三个对应点,根据变换公式确定对应变换系数,将系数变换为汉字的区位码即可得对应汉字信息。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2713310.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存