当前位置:首页 > 基于DCT的数字水印算法(1)
第三章 离散余弦变换(DCT)算法的MATLAB程序及运行结果比较
40 QQ=filter2(hh,D); 41%%%旋转攻击
42 R=imrotate(D,10,'bilinear','crop'); 43 %R=imrotate(D,20,'bilinear','crop'); 44 %R=imrotate(D,45,'bilinear','crop'); 45 %%%%%剪切攻击
46 %D(1:32,1:32)=0; Q2=D; 47 %D(1:64,1:64)=0; Q2=D; 48 %D(1:128,1:128)=0; Q2=D; 49 % 提取水印 50 for p=1:size/K 51 for q=1:size/K 52 x=(p-1)*K+1; 53 y=(q-1)*K+1;
54 I1=I(x:x+K-1,y:y+K-1); 55 I2=QQ(x:x+K-1,y:y+K-1); 56 I_dct1=dct2(I1); 57 I_dct2=dct2(I2); 58 if I_dct2>I_dct1 59 W(p,q)=1; 60 else
61 W(p,q)=0;
- 30 -
第三章 离散余弦变换(DCT)算法的MATLAB程序及运行结果比较
62 end 63 end 64 end
65 figure,subplot(1,2,1);imshow(R,[]);title('低通滤波攻击'); 66 subplot(1,2,2);imshow(W,[]);title('图像中提取的水印'); 67 %%%%%%前后水印相似比较 68 J=double(J);W=double(W); 69 sumJ=0;sumW=0; 70 for j=1:N 71 for i=1:N
72 sumJ=sumJ+J(j,i)*W(j,i); 73 sumW=sumW+W(j,i)*W(j,i); 74 end 75 end
76 CH=(sumW-sumJ)/sumJ
3.2 运行结果比较
1.1---34行程序运行结果如下:
- 31 -
第三章 离散余弦变换(DCT)算法的MATLAB程序及运行结果比较
2.不同程度的低通滤波攻击图像及提出的水印信息:
(1)hh=fspecial('gaussian',3,0.2)攻击与提取
- 32 -
第三章 离散余弦变换(DCT)算法的MATLAB程序及运行结果比较
(2)hh=fspecial('gaussian',3,0.35) 攻击与提取
- 33 -
共分享92篇相关文档