混沌置乱演示

网友投稿 616 2022-11-07

混沌置乱演示

混沌置乱演示

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]);

​​​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:啤酒游戏的牛鞭效应之VMI策略减弱
下一篇:jdk8使用stream实现两个list集合合并成一个(对象属性的合并)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~