⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zhangyhsan5yue2zhiluan.m

📁 这么代码是用Matlab编写的
💻 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;
X1image=Ximage;
Y1image=Yimage;
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)
%         Arnold(i,j)=mod(j+i-1,256);
%         if(mod(j+i-1,256)==0)
%             Arnold(i,j)=256;
%         end
%         
%     end
% end
% 
% Ximage=Ximage*Arnold; 

figure(t)
subplot(3,2,2)
imshow(Ximage,[]);
title('待隐藏图像1置乱图像');

figure(t)
subplot(3,2,3)
imshow(Yimage,[]);
title('待隐藏图像2');

% Yimage= Yimage*Arnold; 

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)=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)=key*(Image(i,j)-Zimage(i,j))+Zimage(i,j);
                Image(i,j)=Ximage(i,j);
                
                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
Arnoldinv= inv(Arnold);
% Ximage=mod(Ximage*Arnold1,256);
% Yimage=mod(Yimage*Arnold1,256);
Ximage= Ximage*Arnoldinv; 
Yimage= Yimage*Arnoldinv;

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


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 + -