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)