www.gusucode.com > 采用混沌和小波相结合的方式实现的图像加密matlab源码程序 > code/diaoyong.m
%该函数针对其中的近似系数和高频系数进行加密,以达到加密的效果(采用函数调用的形式,即构建一个hundungen函数) clear all; t0 = clock;%测试程序运行时间 im=imread('e:\lena.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=hundungen(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('加密图像小波重构'); %以下为混沌解密算法 %以下为混沌解密算法 %以下为混沌解密算法 %以下为混沌解密算法 %以下为混沌解密算法 %以下为混沌解密算法 e=hundungen(M,N,0.1); [fca1,ch1,cv1,cd1]=dwt2(im3,'bior3.7'); fca2=(fca1-(1-tt)*e)/tt; im4=idwt2(fca2,ch1,cv1,cd1,'bior3.7'); figure(6); imshow(uint8(im4),[]); title('解密图像小波重构'); %置乱后图像的均值 figure(7); subplot(221) imhist(uint8(im1)); title('初始图像的直方图'); subplot(222) imhist(uint8(fca1)); title('ca1系数加密之后的直方图'); subplot(223) imhist(uint8(im3)); title('加密之后的直方图'); subplot(224) imhist(uint8(im4)); title('解密之后的直方图'); ssy=sum(sum(im3)); uy=ssy/(M*N);%置乱后图像的均值 vy=sum(sum((im3-uy)^2)); ssx=sum(sum(im1)); ux=ssx/(M*N);%原图像的均值 vx=sum(sum((im1-ux)^2)); Variancey=vy/uy;%置乱后图像的方差 Variancex=vx/ux;%原图像的方差 DDD=Variancey/Variancex;%置乱度 etime(clock,t0)