?? zhangyhsan5yue4zhiluan.m
字號:
clear all;
Ximage=double(imread('e:\work\Lena.jpg'));%待隱藏圖像
Yimage=double(imread('e:\work\cameraman.jpg'));%公開圖像
Zimage=double(imread('e:\work\Monkey.jpg'));%公開圖像
Ih=size(Ximage,1);%圖像的長度
Iw=size(Ximage,2);%圖像的寬度
Image=double(zeros(size(Ximage)));
Image=Zimage;
Dimage=Image;
s=1;
renewing=0;
hiding=0;
% 隱 藏
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);
figure(t)
subplot(3,2,2)
imshow(Ximage,[]);
title('待隱藏圖像1置亂圖像');
figure(t)
subplot(3,2,3)
imshow(Yimage,[]);
title('待隱藏圖像2');
Yimage= mod(Yimage*Arnold,256);
figure(t)
subplot(3,2,4)
imshow(Yimage,[])
title('待隱藏圖像2置亂圖像');
figure(t)
subplot(3,2,5)
imshow(Zimage,[])
title('模版圖像');
for(i=1:Ih)
for(j=1:2:Iw)
Image(i,j)=mod(key2*(Ximage(i,j)-Image(i,j))+Image(i,j),256);%j為奇數
Image(i,j+1)=mod(key2*(Yimage(i,j+1)-Image(i,j+1))+Image(i,j+1),256);%j+1為偶數
% Image(i,j)=key2*(Ximage(i,j)-Image(i,j))+Image(i,j);%j為奇數
% Image(i,j+1)=key2*(Yimage(i,j+1)-Image(i,j+1))+Image(i,j+1);%j+1為偶數
end
end
figure(t)
subplot(3,2,6)
imshow(Image,[]);
title('結果圖像');
end
% for(i=1:Ih)
% for(j=1:Iw)
% if(Image(i,j)~=Zimage(i,j))
% hiding=hiding+(Image(i,j)-Zimage(i,j))^2;
% end
% end
% end
%
% hiding=hiding/(Ih*Iw);
% hiding=hiding^(1/2);
% 恢 復
key2=0.1;
for(t=1:s)
figure(t+s)
subplot(2,2,1)
imshow(Image,[]);
title('結果圖像');
figure(t+s)
subplot(2,2,2)
imshow(Zimage,[]);
title('模板圖像');
key=0;
for(i=1:Ih)
for(j=1:2:Iw-1)
key=1/key2;
Ximage(i,j)=mod(key*(Image(i,j)-Zimage(i,j))+Zimage(i,j),256);
Ximage(i,j)=key*(Image(i,j)-Zimage(i,j))+Zimage(i,j);
Image(i,j)=Ximage(i,j);
Yimage(i,j+1)=mod(key*(Image(i,j+1)-Zimage(i,j+1))+Zimage(i,j+1),256);
Yimage(i,j+1)=key*(Image(i,j+1)-Zimage(i,j+1))+Zimage(i,j+1);
Image(i,j+1)=Yimage(i,j+1);
end
end
for(i=1:Ih)
for(j=2:2:Iw-2)
Ximage(i,j)=0.5*(Ximage(i,j-1)+Ximage(i,j+1));
Yimage(i,j+1)=0.5*(Yimage(i,j)+Yimage(i,j+2));
end
end
Arnoldinv= inv(Arnold);
Ximage=mod(Ximage*Arnoldinv,256);
Yimage=mod(Yimage*Arnoldinv,256);
% Ximage= Ximage*Arnoldinv;
% Yimage= Yimage*Arnoldinv;
figure(t+s)
subplot(2,2,3)
imshow(Ximage,[])
title('恢復圖像2');
figure(t+s)
subplot(2,2,4)
imshow(Yimage,[]);
title('恢復圖像1');
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -