?? zhangyhduo2.m
字號:
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\Monkey.jpg'));
Zimage=double(imread('C:\Documents and Settings\xdjsj\My Documents\zyh\program\house.jpg'));
Ih=size(Ximage,1);%圖像的長度
Iw=size(Ximage,2);%圖像的寬度
Image=double(zeros(size(Ximage)));
Image=Zimage;
Dimage=Image;
s=1;
renewing=0;
hiding=0;
% 隱 藏
key1=4.0;
key2=0.1;
for(t=1:s)
figure(t)
subplot(2,2,1)
imshow(Ximage,[]);;%顯示圖像
title('待隱藏圖像1');
Ximage=uint8(Ximage);
% figure(t)
% subplot(4,2,2)
% imhist(Ximage);%顯示圖像數(shù)據(jù)的柱狀圖
% title('待隱藏圖像1的直方圖');
Ximage=double(Ximage);
figure(t)
subplot(2,2,2)
imshow(Yimage,[]);
title('待隱藏圖像2');
Yimage=uint8(Yimage);
% figure(t)
% subplot(4,2,4)
% imhist(Yimage);
% title('待隱藏圖像2的直方圖');
Yimage=double(Yimage);
figure(t)
subplot(2,2,3)
imshow(Image,[])
title('模板圖像');
Image=uint8(Image);
% figure(t)
% subplot(4,2,6)
% imhist(Image);
% title('模板圖像的的直方圖');
Image=double(Image);
% key2=(key1*key2*(1-key2))/2;
key2=0.1
for(i=1:Ih)
for(j=1:2:Iw)
key2=key1*key2*(1-key2);
% % key2=1-key1*(key2*key2);
% if( key2< 0.0001)
Image(i,j)=mod((key2)*(Ximage(i,j)-Image(i,j))+Image(i,j),256);
Image(i,j+1)=mod((key2)*(Yimage(i,j+1)-Image(i,j+1))+Image(i,j+1),256);
% else
% Image(i,j)=mod(key2^2*(Image(i,j)-Yimage(i,j))+key2*(Yimage(i,j)-Zimage(i,j))+Zimage(i,j),256);
% end
end
end
figure(t)
subplot(2,2,4)
imshow(Image,[]);
title('結果圖像');
Image=uint8(Image);
% figure(t)
% subplot(4,2,8)
% imhist(Image);
% title('結果圖像的直方圖');
Image=double(Image);
Dimage=Ximage;
Ximage=Image;
Yimage=Image;
if(t<s)
Image=Zimage;
end
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);
% 恢 復
key1=4;
key2=0.1;
for(t=1:s)
Ximage=double(zeros(size(Image)));
Yimage=double(zeros(size(Image)));
figure(t+s)
subplot(2,2,1)
imshow(Image,[]);
title('結果圖像');
% Image=uint8(Image);
% figure(t+s)
% subplot(4,2,2)
% imhist(Image);
% title('結果圖像的直方圖');
% Image=double(Image);
figure(t+s)
subplot(2,2,2)
imshow(Zimage,[]);
title('模板圖像');
% Zimage=uint8(Zimage);
% figure(t+s)
% subplot(4,2,4)
% imhist(Zimage);
% title('模板圖像的直方圖');
% Zimage=double(Zimage);
key=0;
for(i=1:Ih)
for(j=1:2:Iw-1)
% key2=1-key1*(key2*key2);
key2=key1*key2*(1-key2);
% if( key2< 0.001)
key=1/key2;
Ximage(i,j)=mod(key*(Image(i,j)-Zimage(i,j))+Zimage(i,j),256);
Image(i,j)=Ximage(i,j);
% Ximage(i,j+1)=Ximage(i,j);
Yimage(i,j+1)=mod(key*(Image(i,j+1)-Zimage(i,j+1))+Zimage(i,j+1),256);
Image(i,j+1)=Yimage(i,j+1);
% Yimage(i,j)=Yimage(i,j+1);
% else
% key=1/key2;
% Image(i,j)=mod(key^2*(Image(i,j)-Zimage(i,j))+key*(Zimage(i,j)-Yimage(i,j))+Yimage(i,j),256);
% end
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
% Image=Ximage+Yimage;
figure(t+s)
subplot(2,2,3)
imshow(Yimage,[])
title('恢復圖像2');
Yimage=uint8(Yimage);
% figure(t+s)
% subplot(4,2,6)
% imhist(Yimage);
% title('恢復圖像2的的直方圖');
Yimage=double(Yimage);
figure(t+s)
subplot(2,2,4)
imshow(Ximage,[]);
title('恢復圖像1');
Ximage=uint8(Ximage);
% figure(t+s)
% subplot(4,2,8)
% imhist(Ximage);
% title('恢復圖像1的直方圖');
Ximage=double(Ximage);
end
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);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -