混沌置乱演示

function zhiluanAll %对原始图像进行置乱 clear; clc; %os原始图像的路径 [filename pathname]=uigetfile('*.bmp;*.tiff;*.tif', '读入图像'); os=[pathname filename]; o=imread(os); % figure,imshow(o); %计算原始图像的大小 [m n]=size(o); %l=zeros(m,n); l=linspace(0,0,m*n); l(1)=0.98; for i=2:m*n l(i)=1-2*l(i-1)*l(i-1); end % %对生成的混沌序列进行排序 % [lsort lindex]=sort(l); % t=linspace(0,0,m*n); % t(1)=0.98; % for i=1:m*n % t(i+1)=1-2*t(i)*t(i); % end % for i=1:m*n % if (l(i)>=0) % l(i)=1; % else % l(i)=0; % end % end % l=~l; % subplot(2,2,2),imshow(l),title('混沌图像'); [lsort,lindex]=sort(l); %ozl =original zhi luan 表示置乱后的原始图像 ozl=zeros(m,n); for i=1:m*n ozl(i)=o(lindex(i)); end % ozl=reshape(ozl,m,n); %%oo =original fu yuan ofy=zeros(m,n); for i=1:m*n ofy(lindex(i))=ozl(i); end h= waitbar(0,'程序处理中,请耐心等待。。。'); for i=1:100, % computation here % waitbar(i/100) end close(h) ; %%%%%%%%%%%%%%%%%%错误的初始密钥 l=linspace(0,0,m*n); l(1)=0.9800001; for i=2:m*n l(i)=1-2*l(i-1)*l(i-1); end [lsort,lindex]=sort(l); ofyError=zeros(m,n); for i=1:m*n ofyError(lindex(i))=ozl(i); end %%%%%%%%%%%%%%%%%%错误的初始密钥 subplot(2,2,1),imshow(o);%,title('原始图像'); title('(a)原始图像','position',[33.5 80.28]); subplot(2,2,2),imshow(ozl,[]);%,title('加密图像'); title('(b)加密图像','position',[33.5 80.28]); subplot(2,2,3),imshow(ofy,[]);%,title('复原图像'); title('(c) 正确密钥解密','position',[33.5 80.28]); subplot(2,2,4),imshow(ofyError,[]);%,title('复原图像'); title('(d) 错误密钥解密','position',[33.5 80.28]); 

 

 

 

 

混沌置乱演示_第1张图片

你可能感兴趣的:(c,加密,function,OS,解密,OO)