【图像加密】基于matlab logistic混沌图像加密与解密【含Matlab源码 1216期】

353 阅读2分钟

一、简介

混沌系统图像加密解密理论部分参考链接: 基于混沌系统的图像加密算法设计与应用

二、部分源代码

%加密程序
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.