混沌系统图像加密解密理论部分参考连接:
基于混沌系统的图像加密算法设计与应用算法
clear all; t0 = clock;%测试程序运行时间 im=imread('elain.jpg'); im1=rgb2gray(im);%图像灰度化 im1=medfilt2(im1,[3 3]);%图像平滑处理 subplot(331); figure(1); imshow(im);%X为原始图像 title('原始图像'); figure(2); imshow(im1); title('灰度化处理'); im1=double(im1); [ca1,ch1,cv1,cd1]=dwt2(im1,'bior3.7');%小波变换,获取图像的低频高频系数 figure(3); subplot(231); imshow(ca1,[]); title('图像近似'); subplot(232); imshow(ch1); title('低频水平份量'); subplot(233); imshow(cv1); title('低频垂直份量'); subplot(234); imshow(cd1),; title('高频份量'); %如下为混沌加密算法 %如下为混沌加密算法 %如下为混沌加密算法 %如下为混沌加密算法 %如下为混沌加密算法 %如下为混沌加密算法 [M,N]=size(ca1); e=hundungen555(M,N,0.1); tt=0.1; fca1=mod(tt*ca1+(1-tt)*e,256); subplot(235); imshow(fca1,[]); title('加密'); im2=idwt2(ca1,ch1,cv1,cd1,'bior3.7'); figure(4); imshow(uint8(im2),[]); title('灰度图像小波重构'); im3=idwt2(fca1,ch1,cv1,cd1,'bior3.7'); figure(5); imshow(uint8(im3),[]); title('加密图像小波重构'); %如下为混沌解密算法 %如下为混沌解密算法 %如下为混沌解密算法 %如下为混沌解密算法 %如下为混沌解密算法 %如下为混沌解密算法 function e=hundungen(M,N,key0) key0=3.925*key0*(1-key0); end key1=3.925; for(i=1:M) for(j=1:N) key0=key1*key0*(1-key0); a(i,j)=key0; end end key3=0.2; key2=3.925; for(i=1:M) for(j=1:N) key3=key2*key3*(1-key3); b(i,j)=key3; end end key4=0.3; key2=3.925; for(i=1:M) for(j=1:N) key4=key2*key4*(1-key4); c(i,j)=key4; end end t=0.4; w0=0.2; w1=0.5; w2=0.3; w=(1-t)^2*w0+2*t*(1-t)*w1+t^2*w2; for(i=1:M) for(j=1:N) P(i,j)=(1-t)^2*a(i,j)*w0+2*t*(1-t)*b(i,j)*w1+t^2*c(i,j)*w2; d(i,j)=P(i,j)/w; d(i,j)=P(i,j); end end x=d; end
1 matlab版本
2014amarkdown
2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.ide