【圖像加密】基於matlab混沌算法圖像加密解密【含Matlab源碼 1218期】

1、簡介

混沌系統圖像加密解密理論部分參考連接:
基於混沌系統的圖像加密算法設計與應用算法

2、部分源代碼

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

3、運行結果

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

4、matlab版本及參考文獻

1 matlab版本
2014amarkdown

2 參考文獻
[1] 蔡利梅.MATLAB圖像處理——理論、算法與實例分析[M].清華大學出版社,2020.
[2]楊丹,趙海濱,龍哲.MATLAB圖像處理實例詳解[M].清華大學出版社,2013.
[3]周品.MATLAB圖像處理與圖形用戶界面設計[M].清華大學出版社,2013.
[4]劉成龍.精通MATLAB圖像處理[M].清華大學出版社,2015.ide

相關文章
相關標籤/搜索