?? zhangyhd5yue4zhiluan.m
字號(hào):
clear all;
Ximage=double(imread('C:\Documents and Settings\xdjsj\My Documents\zyh\program\Lena.jpg'));
Yimage=double(imread('C:\Documents and Settings\xdjsj\My Documents\zyh\program\test2.jpg'));
Ih=size(Ximage,1);%圖像的長(zhǎng)度
Iw=size(Ximage,2);%圖像的寬度
Image=double(zeros(size(Ximage)));
Image=Ximage;
s=1;
renewing=0;
hiding=0;
% 隱 藏
key1=4;
key2=0.1;
for(t=1:s)
figure(t)
subplot(3,2,1)
imshow(Ximage,[]);;%顯示圖像
title('待隱藏圖像1');
for(i=1:Ih)
for(j=1:Iw)
if(j<i)
Arnold(i,j)=j;
else
Arnold(i,j)=i;
end
end
end
Ximage= mod(Ximage*Arnold,256);
% Ximage= Ximage*Arnold;
figure(t)
subplot(3,2,2)
imshow(Ximage,[]);
title('置亂圖像');
figure(t)
subplot(3,2,3)
imshow(Yimage,[]);
title('模板圖像');
for(i=1:Ih)
for(j=1:Iw)
key2=(key1*key2*(1-key2));
if( key2< 0.01)
Image(i,j)=mod((key2+0.1)*(Image(i,j)-Yimage(i,j))/2+Yimage(i,j),256);
else
Image(i,j)=mod(key2*(Image(i,j)-Yimage(i,j))/2+Yimage(i,j),256);
end
end
end
figure(t)
subplot(3,2,4)
imshow(Image,[]);
title('結(jié)果圖像');
end
for(i=1:Ih)
for(j=1:Iw)
if(Image(i,j)~=Yimage(i,j))
hiding=hiding+(Image(i,j)-Yimage(i,j))^2;
end
end
end
hiding=hiding/(Ih*Iw);
hiding=hiding^(1/2);
% 恢 復(fù)
key1=4;
key2=0.1;
%
for(t=1:s)
figure(t)
subplot(3,2,5)
imshow(Image,[]);
title('結(jié)果圖像');
key=0;
% key3=0;
% key2=(key1+((key1)^2-key2*4*key1)^(1/2))/(2*key1);
% key3=(key1-((key1)^2-key2*4*key1)^(1/2))/(2*key1);
%
for(i=1:Ih)
for(j=1:Iw)
key2=key1*key2*(1-key2);
% key2=(key1-((key1)^2-key2*4*key1)^(1/2))/(2*key1);
if( key2< 0.01)
key=1/(key2+0.1);
Image(i,j)=mod(2*key*(Image(i,j)-Yimage(i,j))+Yimage(i,j),256);
else
key=1/key2;
Image(i,j)=mod(2*key*(Image(i,j)-Yimage(i,j))+Yimage(i,j),256);
end
end
end
figure(t)
subplot(3,2,5)
imshow(Image,[]);
title('恢復(fù)圖像');
Arnold1= inv(Arnold);
Ximage=mod(Ximage*Arnold1,256);
Yimage=mod(Yimage*Arnold1,256);
% Ximage=Ximage*Arnold1;
% Yimage=Yimage*Arnold1;
figure(t)
subplot(3,2,6)
imshow(Image,[]);
title('恢復(fù)圖像');
end
%恢復(fù)的均方根誤差
for(i=1:Ih)
for(j=1:Iw)
if(Image(i,j)~=Ximage(i,j))
renewing=renewing+(Image(i,j)-Ximage(i,j))^2;
end
end
end
renewing=renewing/(Ih*Iw);
renewing=renewing^(1/2);
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -