📄 xinchazhi.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\test2.jpg'));
Ih=size(Ximage,1);%图像的长度
Iw=size(Ximage,2);%图像的宽度
Image=double(zeros(size(Ximage)));
Image=Ximage;
s=3;
renewing=0;
hiding=0;
%隐藏
key1=4;
key2=0.1;
for(t=1:s)
figure(t)
subplot(3,2,1)
imshow(Image,[]);
title('待隐藏图像');
Image=uint8(Image);
figure(t)
subplot(3,2,2)
imhist(Image);
title('待隐藏图像的直方图');
Image=double(Image);
figure(t)
subplot(3,2,3)
imshow(Yimage,[]);
title('模板图像');
Yimage=uint8(Yimage);
figure(t)
subplot(3,2,4)
imhist(Yimage);
title('模板图像的直方图');
Yimage=double(Yimage);
for(i=1:Ih)
for(j=1:Iw)
key2=(key1*key2*(1-key2));
if( key2< 0.001)
key2=key2+0.1;
Image(i,j)=mod(key2*(Image(i,j)-Yimage(i,j))/2+Yimage(i,j),256);
else
Image(i,j)=mod(key2*(Image(i,j)-Yimage(i,j))+Yimage(i,j),256);
end
end
end
figure(t)
subplot(3,2,5)
imshow(Image,[]);
title('结果图像');
Image=uint8(Image);
figure(t)
subplot(3,2,6)
imhist(Image);
title('结果图像的直方图');
Image=double(Image);
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);
%恢复
key1=4;
key2=0.1;
%
for(t=1:s)
figure(t+s)
subplot(3,2,1)
imshow(Image,[]);
title('结果图像');
Image=uint8(Image);
figure(t+s)
subplot(3,2,2)
imhist(Image);
title('结果图像的直方图');
Image=double(Image);
figure(t+s)
subplot(3,2,3)
imshow(Yimage,[]);
title('模板图像');
Yimage=uint8(Yimage);
figure(t+s)
subplot(3,2,4)
imhist(Yimage);
title('模板图像的直方图');
Yimage=double(Yimage);
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))/2;
if( key2< 0.001)
key2=key2+0.1;
key=2/key2;
Image(i,j)=mod(key*(Image(i,j)-Yimage(i,j))+Yimage(i,j),256);
else
key=1/key2;
Image(i,j)=mod(key*(Image(i,j)-Yimage(i,j))+Yimage(i,j),256);
end
%
end
end
figure(t+s)
subplot(3,2,5)
imshow(Image,[]);
title('恢复图像');
Image=uint8(Image);
figure(t+s)
subplot(3,2,6)
imhist(Image);
title('恢复图像的直方图');
Image=double(Image);
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 + -