3636c63813635b389cce448c219885be.png

看下这个程序function main()%主要思想是从两幅图像中选取信息,然后置乱成一幅图像。

%这样可以从要加密的多幅(2*n幅)图像中,按照上述思想,得到一半数目(n幅)的图像。

%对得到的图像进行自适应算法的隐藏,又可以得到(n-1)幅的图像。

%对(n-1)幅的图像进行Arnold变换,得到(n-1)幅的图像作为密钥,此外,密钥还有迭代次数,置乱规则,Arnold加密规则

%主要缺点是Arnold的周期较大,程序的运行的时间长些,我的电脑需要8分钟,另外,Arnold只能处理方阵

%图像的置乱加密算法很多,本程序中用到的置乱加密算法只是其中一种方法,仅仅提出一个多幅图像加密的思想,后期还有许多的工作要做。%读入四幅图像

F1 = imread('lena.gif');

F2 = imread('monkey.gif');

F3 = imread('house.gif');

F4 = imread('cameraman.gif');%对图像的置乱

pic1_zhiluan = zhiluan(F1,F2);

pic2_zhiluan = zhiluan(F3,F4);%显示置乱后的图像

pic1_zhiluan = uint8(pic1_zhiluan);

figure,imshow(pic1_zhiluan),title('pic1 zhiluan')pic2_zhiluan = uint8(pic2_zhiluan);

figure,imshow(pic2_zhiluan),title('pic2 zhiluan')

%将两幅置乱图像进行隐藏

X1 = input('请输入一个混合迭代参数:');

pic1_hide = hide(pic1_zhiluan,X1,pic2_zhiluan);%对隐藏后的图像进行Arnold置乱加密

diedai1 = input('请输入一个迭代的参数:')

pic1_jiami = Arnold(pic1_hide,diedai1,0);%显示加密后的图像

pic1_jiami = uint8(pic1_jiami);

figure,imshow(pic1_jiami),title('pic1 jiami')diedai2 = input('请输入一个迭代的参数:')

pic2_jiami = Arnold(pic2_zhiluan,diedai2,0);pic2_jiami = uint8(pic2_jiami);

figure,imshow(pic2_jiami),title('pic2 jiami')%解密图像

pic1_jiemi = Arnold(pic1_jiami,diedai1,1);

pic2_jiemi = Arnold(pic2_jiami,diedai2,1);%恢复隐藏后的图像

pic1_huifu = huifu(pic1_jiemi,X1,pic2_jiemi);%置乱的逆处理,得到恢复后的图像

[image1,image2] = ni_zhiluan(pic1_huifu);

[image3,image4] = ni_zhiluan(pic2_jiemi);%显示各个图像

F1 = uint8(F1);

figure,imshow(F1),title('F1');

figure,imhist(F1),title('F1的直方图');image1 = uint8(image1);

figure,imshow(image1),title('image1');

figure,imhist(image1),title('image1的直方图');F2 = uint8(F2);

figure,imshow(F2),title('F2');

figure,imhist(F2),title('F2的直方图');image2 = uint8(image2);

figure,imshow(image2),title('image2');

figure,imhist(image2),title('image2的直方图');F3 = uint8(F3);

figure,imshow(F3),title('F3');

figure,imhist(F3),title('F3的直方图');image3 = uint8(image3);

figure,imshow(image3),title('image3');

figure,imhist(image3),title('image3的直方图');F4 = uint8(F4);

figure,imshow(F4),title('F4');

figure,imhist(F4),title('F4的直方图');image4 = uint8(image4);

figure,imshow(image4),title('image4');

figure,imhist(image4),title('image4的直方图'

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐