arnold(猫脸变换)的代码
- 格式:doc
- 大小:28.50 KB
- 文档页数:2
function index=arnold(row,col,s,number)
%This function is to permutate matrix
%row and col are the coordinates of matrix
%s is the size of matrix
#
%number is the number of permutation
permutate=[1 1;1 2];
index=mod((permutate*[row-1;col-1]),s);
for i=1:number-1
\
index=mod((permutate*index),s);
end
备注:上面的代码是“猫脸变换”的。
要使得程序完全实现,将这个程序做成M代码,和“加密图中可逆数据隐藏”的代码放在同一个文件夹即可。
改变“加密图中可逆数据隐藏”的代码中的size、N(N代表置乱周期)、N1(N1+N2=N)的值即可完全实现张新鹏教授的算法。
代码中的size是与分块大小对应的,也就是说size为下图的矩阵大小,N是下图的置乱周期。
]
事实上,置乱周期的代码也有,一起附在下面吧。
关于size=40以后的,你们可以自己用置乱周期的代码找到size和N的关系后仿真。
clc;
clear;
permutation=[1 1;1 2];
m=[1;1];
.
s=48;
n=mod((permutation*m),s);
N=1;
while 1
—
n=mod((permutation*n),s);
N=N+1;
if n==m
break;
end
end
N。