- 第一种
- 1、二维图像直接行置乱与列置乱
(2)单次不重复置乱
前文所述随机置乱方法,有些行列会被多次交换位置,如第一列经过三次列置乱后,仍然处于第一列。
所以采用单次不重复置乱方法效果可能会更好一些
(其实在视觉上根本看不出来)
实现方式很简单: 对于行/列置乱,把由混沌系统产生的随机向量X/Y中重复的随机数只保留一个,然后在末尾按从小到大的顺序补齐没有出现过的元素。
实现:
这里使用的超混沌Lorenz系统
clc,clear;
P=imread('lena.bmp');P=rgb2gray(P);//读入图像
iptsetpref('imshowborder','tight');//显示时无边框
figure(1);subplot(1,3,1);imshow(P);title('原图 lena');
[M,N]=size(P);P=double(P);
n=M+N;
h=0.002;t=800;
a=10;b=8/3;c=28;r=-1;
x0=1.1;y0=2.2;z0=3.3;w0=4.4;
s=zeros(1,n);
for i=1:n+t
K11=a*(y0-x0)+w0;K12=a*(y0-(x0+K11*h/2))+w0;
K13=a*(y0-(x0+K12*h/2))+w0;K14=a*(y0-(x0+h*K13))+w0;
x1=x0+(K11+K12+K13+K14)*h/6;
K21=c*x1-y0-x1*z0;K22=c*x1-(y0+K21*h/2)-x1*z0;
K23=c*x1-(y0+K22*h/2)-x1*z0;K24=c*x1-(y0+h*K23)-x1*z0;
y1=y0+(K21+K22+K23+K24)*h/6;
K31