cat_scrambling.m

来自「arnold cat 映射实验」· M 代码 · 共 47 行

M
47
字号

%%%%%%%%%%%%%% anold cat 映射 %%%%%%%%%%%%%%%%%%%%% 
%% 图像是N * N 的灰度图像 

originimage=imread('50.bmp');    %%%%%%%%一定是方阵
origin=rgb2gray(originimage);
temp=origin;
figure,imshow(origin)
n=length(temp) 
m=0;
a=20;
b=10;
c=a*b+1;
flag=0;

%%%%%%%%%%%cat映射要求  下标从0开始, 0~(n-1)

while flag==0

      for i=0:n-1                       %%%%%%%%%%%  置换一次  
           for j=0:n-1
           x=mod(i+a*j,n); 
           y=mod(b*i+c*j,n); 
           lastimage(x+1,y+1)=temp(i+1,j+1);
           end
      end 
      m=m+1;                           %%  置换一次完毕
      
      if(mod(m,5)==0)                 %%每5个加密图像显示一次
          {
              figure,imshow(lastimage),title('每加密5次的图像')
          }
      end

      if(origin==lastimage)            %%%%置换多少次出现重复
            flag=1;
          figure,imshow(lastimage),title('出现重复的图像')  
      else
         temp=lastimage;    
      end
end
m                    

 
 

        

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?