www.pudn.com > Arnold000.rar > Arnold000.m
function Arnold(Image)
%Image:待加密图像文件名(注意写格式后缀),只为二维
%Frequency:图像需要变换的次数
if nargin<1
disp('请按照程序的输入参数格式输入参数!!!');
return;
end
%将Q赋值给M,计算Q的大小
Q=imread('D:\MATLAB71\work\lena.bmp');
M=Q;
Size_Q=size(Q);
%如果不是二维数组,则不处理,返回
if(length(Size_Q)==2)
if Size_Q(1)~=Size_Q(2)
disp('不是方阵,不能进行Arnold变换');
return
end
else
disp('不是二维数组,不进行Arnold变换');
return
end
%--------------------------------------------------------------------------
%Arnold变换加密
K=Size_Q(1);
M1=Q;
for i=1:K
for j=1:K
c=M1(i,j);
M2(mod(i+j-2,K)+1,mod(i+2*j-3,K)+1)=c;
end
end
imshow(M2);