彩色图像如何进行Arnold变换
看下这个程序function main() %主要思想是从两幅图像中选取信息,然后置乱成一幅图像。 %这样可以从要加密的多幅(2*n幅)图像中,按照上述思想,得到一半数目(n幅)的图像。 %对得到的图像进行自适应算法的隐藏,又可以得到(n-1)幅的图像。 %对(n-1)幅的图像进行Arnold变换,得到(n-1)幅的图像作为密钥,此外,密钥还有迭代次数,置乱规则,Arnold加密规则 %主要缺点是Arnold的周期较大,程序的运行的时间长些,我的电脑需要8分钟,另外,Arnold只能处理方阵 %图像的置乱加密算法很多,本程序中用到的置乱加密算法只是其中一种方法,仅仅提出一个多幅图像加密...全部
看下这个程序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的直方图'。
收起