📄 arnold.m
字号:
function M = Arnold(Q,Frequency,crypt)
M = Q;
Size_Q = size(Q);
n = 0;
K = Size_Q(1);
M1_t = Q;
M2_t = Q;
if crypt==1 %解密
Frequency=ArnoldPeriod( Size_Q(1) )-Frequency;%通过周期减去迭代的次数,用此数据作为新的迭代次数,可以达到解密的目的
end
%以下间隔的用到了M1_t,M2_t作为临时的储存空间
%以下是加密算法
for s = 1:Frequency
n = n + 1;
if (mod(n,2) == 0)
for i = 1:K
for j = 1:K
c = M2_t(i,j);
M1_t(mod(i+j-2,K)+1,mod(i+2*j-3,K)+1) = c;
end
end
else
for i = 1:K
for j = 1:K
c = M1_t(i,j);
M2_t(mod(i+j-2,K)+1,mod(i+2*j-3,K)+1) = c;
end
end
end
end
%根据迭代的次数,确定此时的图像信息。这和上面的程序代码紧密联系,仔细看看。
if (mod(Frequency,2) == 0)
M = M1_t;
else
M = M2_t;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -