📄 testwatermarking.m
字号:
clear all;
s=64;
t1=48;
t2=16;
file_name='lena.bmp';
cover_object=double(imread(file_name));
mc=size(cover_object,1);
nc=size(cover_object,2);
r1 = mc/8;
c1 = nc/8;
message = ceil(mod(abs(randn(r1,c1)),2))-1;
[cA1,cH1,cV1,cD1]=dwt2(cover_object,'haar');
[cA2,cH2,cV2,cD2]=dwt2(cA1,'haar');
[cA3,cH3,cV3,cD3]=dwt2(cA2,'haar');
for ii=1:r1
for jj=1:c1
if(message(ii,jj)==1)&(cA3(ii,jj)>=0)
cA3(ii,jj)=cA3(ii,jj)-rem(cA3(ii,jj),s)+t1;
elseif (message(ii,jj)==0)&(cA3(ii,jj)>=0)
cA3(ii,jj)=cA3(ii,jj)-rem(cA3(ii,jj),s)+t2;
elseif(message(ii,jj)==1)&(cA3(ii,jj)<0)
cA3(ii,jj)=cA3(ii,jj)-rem(cA3(ii,jj),s)-t1;
else
cA3(ii,jj)=cA3(ii,jj)-rem(cA3(ii,jj),s)-t2;
end
end
end
cA2=idwt2(cA3,cH3,cV3,cD3,'haar',[mc/4,nc/4]);
cA1=idwt2(cA2,cH2,cV2,cD2,'haar',[mc/2,nc/2]);
watermarked_image = idwt2(cA1,cH1,cV1,cD1,'haar',[mc,nc]);
figure(1)
subplot(2,2,1);imshow(cA1,[]);
subplot(2,2,2);imshow(cA2,[]);
subplot(2,2,3);imshow(cA3,[]);
subplot(2,2,4);imshow(cD1,[]);
figure(2)
imshow(cA3,[]);
figure(3)
imshow(cover_object,[]);
%imshow(watermarked_image,[]);
imwrite(uint8(watermarked_image),'C:\corrected.bmp');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
w_file_name='C:\corrected.bmp';
watermarked_image_1=double(imread(w_file_name));
figure(4)
imshow(watermarked_image_1,[]);
mw=size(watermarked_image_1,1);
nw=size(watermarked_image_1,2);
[cA11,cH11,cV11,cD11]=dwt2(watermarked_image,'haar');
[cA21,cH21,cV21,cD21]=dwt2(cA11,'haar');
[cA31,cH31,cV31,cD31]=dwt2(cA21,'haar');
m1=size(cA31,1);
n1=size(cA31,2);
for ii=1:m1
for jj=1:n1
if abs(rem(cA31(ii,jj),s))>=(t1+t2)/2
cA31(ii,jj)=1;
else
cA31(ii,jj)=0;
end
end
end
sum(sum(abs(message - cA31)))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -