📄 wm.m
字号:
clear
X=double(imread('lena_512.bmp'));
[xc,xs]=wavedec2(X,3,'db1');
M=size(X,1);
Y=imread('mark.bmp');
[yc,ys]=wavedec2(Y,1,'db1');
N=size(Y,1);
m=M/(2^3);
sum1=0;
for i=1:m*4*m %计算xc(1:64)平均值ave
sum1=sum1+xc(i);
end
ave=sum1/(m*m*4);
sum2=0;
for i=1:m*m*4
tmp=xc(i)-ave;
sum2=sum2+tmp^1.8;
end
st=sum2/(m*m*4);
j=1;
for i=1:1:N*N %-1:N*N-(N/2)^2+1
a=(xc(j)-ave)/st;
xc(j)=xc(j)+(0.08-a)*yc(i);
j=j+4;
end
im_m=waverec2(xc,xs,'db1');
figure
subplot(121);imshow(X,[]);
subplot(122);imshow(im_m,[]);
imwrite(uint8(im_m),'lena512m.bmp');
Y=double(imread('lena512m.bmp'));
psnr_m=20*log10(512^2*255^2/sum(sum((X-Y)^2)))
clear
X=double(imread('lena_512.bmp'));
[xc,xs]=wavedec2(X,3,'db1');
M=size(X,1);
Y=double(imread('lena512m.bmp'));
%Y(1:256,1:256)=0;
[yc,ys]=wavedec2(Y,3,'db1');
N=size(Y,1);
m=M/(2^3);
sum1=0;
for i=1:m*4*m %计算xc(1:64)平均值ave
sum1=sum1+xc(i);
end
ave=sum1/(m*m*4);
sum2=0;
for i=1:m*m*4
tmp=(xc(i)-ave);
sum2=sum2+tmp^1.8;
end
st=sum2/(m*m*4);T=64;
wc=zeros(1,T*T);
j=1;
for i=1:1:T*T
a=(xc(j)-ave)/st;
wc(i)=(yc(j)-xc(j))/(0.08-a);
j=j+4;
end
ws=zeros(3,2);
ws(1:2,1:2)=T/2;ws(3,1)=T;ws(3,2)=T;
w_m=waverec2(wc,ws,'db1');
w=double(imread('mark.bmp'));
figure
imshow(Y,[]);
figure
imshow(w_m,[]);
imwrite(uint8(w_m),'remark.bmp');
psnr_im=20*log10(512^2*255^2/sum(sum((X-Y)^2)))
psnr_mark=20*log10(64^2*255^2/sum(sum((w-w_m)^2)))
clear
X=double(imread('lena_512.bmp'));
[xc,xs]=wavedec2(X,3,'db1');
M=size(X,1);
Z=imread('lena512m.bmp');
imwrite(Z,'lenajp.jpg','Q',40);
Y=double(imread('lenajp.jpg'));
%Y(1:256,1:256)=0;
[yc,ys]=wavedec2(Y,3,'db1');
N=size(Y,1);
m=M/(2^3);
sum1=0;
for i=1:m*4*m %计算xc(1:64)平均值ave
sum1=sum1+xc(i);
end
ave=sum1/(m*m*4);
sum2=0;
for i=1:m*m*4
tmp=(xc(i)-ave);
sum2=sum2+tmp^2;
end
st=sum2/(m*m*4);T=64;
wc=zeros(1,T*T);
j=1;%64*64-32*32;
for i=1:1:T*T
a=(xc(j)-ave)/st;
wc(i)=(yc(j)-xc(j))/(0.08-a);
j=j+4;
end
ws=zeros(3,2);
ws(1:2,1:2)=T/2;ws(3,1)=T;ws(3,2)=T;
w_m=waverec2(wc,ws,'db1');
figure
imshow(Y,[]);
figure
imshow(w_m,[]);
imwrite(uint8(w_m),'remark.bmp');
w=double(imread('mark.bmp'));
psnr_im=10*log10(512^2*255^2/sum(sum((X-Y)^2)))
psnr_mark=10*log10(64^2*255^2/sum(sum((w-w_m)^2)))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -