图片加密解密

算法1.把图像的数据重塑成一维的形式,对其进行置乱;
clear 
close   
clc  
G=imread('F:\Fatiao.jpg');  
G=rgb2gray(G)
subplot(1,3,1);  
imshow(G);   
title('原图');  
A=G(:);    
A1=G(end: -1:1);乱 
subplot(1,3,2); 
A1=reshape(A1,256,256)
imshow(A1);  
title('一维置乱');  %title一下 
A2=A1(end:-1:1); 
A2G=reshape(A2,256,256); 
subplot(1,3,3) ;
imshow(A2G)  
title('置乱恢复');  %title一下 
 

算法2.把图像看成二维的形式,采用二维坐标的形式对其进行置乱;
clear 
close 
clc  
G=imread('F:\Fatiao.jpg');
G=rgb2gray(G)
subplot(1,3,1); 
imshow(G); 
title('原图') %title一下原图
Gadd=fix(256*rand(256,256));
for i=1:256  
     for j=1:256  
        G1(i,j)=0.1*G(i,j)+0.9*Gadd(i,j); 
     end 
end  
subplot(1,3,2); 
imshow(G1); 

 title('置乱后的图像')  ;
for i=1:256   
       for j=1:256  
           G2(i,j)=(G1(i,j)-0.9*Gadd(i,j))./0.1;   
       end  
end  
subplot(1,3,3) 
imshow(G2); %显示图像
title('恢复后的图像');

 

算法3.利用arnold变换(猫脸变换)对图像进行置乱,并检验arnold的周期性(即变换周期为N时,采用arnold变换N次后,可以恢复原有图像)
clear 
close 
clc 
G=imread('F:\Fatiao.jpg');
subplot(2,2,1);
imshow(G); 
title('原图');
 for k=1:12 
       for x=1:256
             for y=1:256
                  x1=x+y;
                  y1=x+2*y;
                  if x1>256
                      x1=mod(x1,256);
                  end
                  if y1>256
                      y1=mod(y1,256);
                  end
                  if x1==0;
                      x1=256;
                  end
                  if y1==0;
                       y1=256;
                  end
                  G_TR(x1,y1)=G(x,y);
              end
         end
     G=G_TR
              if k==1
                   subplot(2,2,2);
                   imshow(G_TR);
                   title('一次迭代');
              end
              if k==2
                   subplot(2,2,3);
                   imshow(G_TR);
                   title('二次迭代');
              end
         end
                subplot(2,2,4);
                imshow(G_TR);
                title('192次迭代复原');

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值