混沌置乱演示

本文介绍了一种基于混沌序列的图像加密方法,通过改变像素位置实现图像加密与解密,并演示了使用正确与错误密钥的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

chaoticDemo2e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值