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 + -
显示快捷键?