1. 程式人生 > 其它 >【影象加密】基於matlab logistic混沌影象加密與解密【含Matlab原始碼 1216期】

【影象加密】基於matlab logistic混沌影象加密與解密【含Matlab原始碼 1216期】

一、簡介

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

二、部分原始碼

%加密程式
function b=jiami(a,s,h)
[m1,n1]=size(a(:,:,1));
x=zeros(1,m1+n1);
y=[1:m1+n1];

%然後, 用Logitic 對映產生混沌序列: 
for n=1:m1+n1-1
    x(1)=s;
    q=h;
   x(n+1)=q*x(n)*(1- x(n));
end

%排序行置亂
for f=1:m1-1
    for h=f:m1
        if x(f)>x(h)
            k=x(f);
            x(f)=x(h);
            x(h)=k;
            m=y(f);
            y(f)=y(h);
            y(h)=m;
            c1=a(f,:,:);
            a(f,:,:)=a(h,:,:);
            a(h,:,:)=c1;
       end
    end
end
 function b=jiemi(a,s,h)
[m1,n1]=size(a(:,:,1));
x=zeros(1,m1+n1);
y=[1:m1+n1];
%然後, 用Logitic 對映產生混沌序列:
for n=1:m1+n1-1
    x(1)=s;
    q=h;
   x(n+1)=q*x(n)*(1- x(n));
end

%行置亂
for f=1:m1-1
    for h=f:m1
        if x(f)>x(h)
            k=x(f);
            x(f)=x(h);
            x(h)=k;
            m=y(f);
            y(f)=y(h);
            y(h)=m;
        end
    end
end

%列置亂
for f=m1+1:m1+n1-1
    for h=f:m1+n1
        if x(f)>x(h)
            k=x(f);
            x(f)=x(h);
            x(h)=k;
            m=y(f);
            y(f)=y(h);
            y(h)=m;
        end
    end
end

%行解密
for f=1:m1-1
    for h=f:m1
        if y(f)>y(h)
            m=y(f);
            y(f)=y(h);
            y(h)=m;
            c1=a(f,:,:);
            a(f,:,:)=a(h,:,:);
           a(h,:,:)=c1;
           
        end
    end
end

三、執行結果


四、matlab版本及參考文獻

1 matlab版本
2014a

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