计算机处理图像时需要将图像转换成数字化的数据,这时候就需要将二维图像展成一维向量。但是,如果直接将像素点按照顺序展开,就会导致图像的特征信息丢失,影响后续的图像处理和分析。
一种将二维图像展成一维向量后的随机置乱方法。具体来说,就是将像素点按照一定的规则重新排列,这样就能够保留图像的特征信息,同时又能够保证数据的随机性,从而提高了图像处理的效果。
二维图像展成一维向量后的随机置乱
clc;clear;%二维图像展成一维向量后的随机置乱
P=imread('8888.jpeg');P=rgb2gray(P);
iptsetpref('imshowborder','tight');
figure(1);imshow(P);
[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+tK11=a*(y0-x0)+w0;K12=a*(y0-(x0+K11*h/2))+w0;K13=a*(y0-(x0+K12*h/2))+w0;K14=a*(y0-(x0+K13*h))+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+K23*h)-x1*z0;y1=y0+(K21+K22+K23+K24)*h/6;K31=x1*y1-b*z0;K32=x1*y1-b*(z0+K31*h/2);K33=x1*y1-b*(z0++K32*h/2);K34=x1*y1-b*(z0+K33*h);z1=z0+(K31+K32+K33+K34)*h/6;K41=-y1*z1+r*w0;K42=-y1*z1+r*(w0+K41*h/2);K43=-y1*z1+r*(w0+K42*h/2);K44=-y1*z1+r*(w0+K43*h);w1=w0+(K41+K42+K43+K44)*h/6;x0=x1;y0=y1;z0=z1;w0=w1;if i>ts(i-t)=x1;if mod((i-t),3000)==0x0=x0+h*sin(y0);endend
endX=mod(floor((s+100)*10^10),M*N)+1;
A=P(:);
for i=1:M*Nt=A(i);A(i)=A(X(i));A(X(i))=t;
end
A=reshape(A,M,N);
figure(2);imshow(uint8(A));
效果: