zoukankan      html  css  js  c++  java
  • MATLAB 图像加密处理(二)

    在加密过程中,需要产生加密密钥,对于密钥,采用混沌序列的方式生成。

    一、对于二值图像
    二值图像中所有的像素点,只有两个值,即0、1,或者是其他取值0、255,生成公式采用下面的公式:
    在这里插入图片描述
    当混沌序列的数值大于零时,取值唯一,当混沌序列的值小于等于零时,取值为零,当然,等于号的位置任意。其实,该函数可以随意定义,当x的取值由大于零的值分界,其中黑色点较多,反之,则是白色点的值较多。

    生成二值混沌图像的代码如下:

    %% 生成二值混沌图像
    n=512;
    m=512;
    x=zeros(m,n);
    x(1)=0.98;
    for i=2:n*m
        x(i)=1-2*x(i-1)*x(i-1);
    end
    for i=1:n*m
        if x(i)<=0
            x(i)=0;
        else x(i)>0
            x(i)=1;
        end
    end
    imshow(x);
    

    生成图片如下:
    在这里插入图片描述
    二、对于灰度图像
    灰度图像中的所有的像素值在0~255之间,生成灰度图像的重点是将[-1,1]之间的混沌序列映射到[0,225]之间,采用的办法为取余法。

    %GOI=mod(OI*1000000000,256)%mod(a,b)函数返回a/b的余数
    

    其中OI为混沌序列,GOI为灰度序列。

    生成灰度图像的代码如下所示:

    %% 生成灰度混沌系统
    %将混沌系统中的数值乘以一个很大的数,并对256取余
    %GOI=mod(OI*1000000000,256)%mod(a,b)函数返回a/b的余数
    n=512;
    m=512;
    x=zeros(m,n);
    x(1)=0.98;
    for i=2:n*m
        x(i)=1-2*x(i-1)*x(i-1);
    end
    for i=1:n*m
    x(i)=mod(round(x(i)*999998391829),256);
    end
    imshow(x,[]);
    

    在这里插入图片描述
    三、对于彩色图像
    在MATLAB中,彩色图像以三维的矩阵的形式存在,分为R、G、B三层。生产方法,将三个灰度矩阵链接起来就可以了。

    矩阵链接方法:

    %cat(n,a,b)函数
    %当n=1时,表示按列将ab链接到一起
    %当n=2时,按行链接到一起
    %当n=3是,按更高维将ab链接到一起
    

    生成彩色图像代码如下:

    %% 生成彩色混沌系统
    
    %生成r空间
    r=zeros(512,512);
    r(1)=0.98;
    for i=2:512*512
        r(i)=1-2*r(i-1)*r(i-1);
    end
    for i=1:512*512
        r(i)=mod(round(r(i)*98888888888),256);
    end
    
    %生成g空间
    g=zeros(512,512);
    g(1)=0.98001;
    for i=2:512*512
        g(i)=1-2*g(i-1)*g(i-1);
    end
    for i=1:512*512
        g(i)=mod(round(g(i)*98888888888),256);
    end
    
    %生成b空间
    b=zeros(512,512);
    b(1)=0.9700001839;
    for i=2:512*512
        b(i)=1-2*b(i-1)*b(i-1);
    end
    for i=1:512*512
        b(i)=mod(round(b(i)*98888888888),256);
    end
    
    hu=zeros(512,512,3);
    hu=cat(3,r,g,b);
    imshow(uint8(hu));%将hu转化为八位无符号,或者归一化
    

    生成图像如下:
    在这里插入图片描述

  • 相关阅读:
    浅谈系统调用与库函数
    由代码到可执行程序----浅谈程序的编译链接
    初识信号---进程间的交流
    内部排序总结之----选择类排序(选择、堆)
    僵死进程
    父子进程那些事儿
    fok函数
    面试-css样式
    面试-javascript知识
    面试--数据库
  • 原文地址:https://www.cnblogs.com/mach-pupil/p/12535336.html
Copyright © 2011-2022 走看看