江西理工大学江西理工大学实验报告纸第1页/共2页一、实验目的(1)了解信息隐藏基本原理;(2)理解图像加密技术的基本思想;(3)掌握Arnold置乱算法和位平面算法;(4)完成8位BMP灰度图像的置乱预处理;(5)将置乱后的秘密图像信息隐藏到载体图像的最低有效位中;二、实验内容以8位BMP灰度图像SecretiveBmp.bmp为秘密图像,以8位BMP灰度图像lena.bmp为载体图像,先用Arnold变换算法对SecretiveBmp.bmp进行置乱预处理,然后将置乱后的SecretiveBmp.bmp结果图像嵌入到lena.bmp的最低有效位中,实现信息隐藏。(编程语言不限)三、实验步骤和设计思想Arnold变换(Catmapping),俗称猫脸变换!,是V.J.Arnold在遍历理论的研究中提出的一类裁剪变换[3],它可以抽象为在平面单位正方形内绘制一个猫脸图像,这个猫脸图像由清晰变模糊。将图像看作平面区域上的二元函数Z=F(x,y),(x,y)∀R,通常区域R是一个矩形(讨论R为正方形的情况)。对R中的任意点(x,y),相对应的函数值F(x,y)代表图像的信息(如灰度值等)。随着图像的数字化,Z=F(x,y)可看作一个二维离散点阵,其元素所在的行与列对应于自变量进行取值,元素本身代表图像信息。简言之,离散化的数字图像相当于元素之间有相关性的一类特殊矩阵。对这一矩阵进行如下变换可以得到新的矩阵,从而实现图像的置乱处理。一:置乱前的秘密图像读入并显示w=imread('D:\matlab\work\lenal.bmp')。Arnold图像置乱:1、定义一个零矩阵用于设置每一轮arnold变换后生成的新图像2、定义arnlod变换过程中临时存放数据的矩阵Temp。encryImg为置乱后的图像。3、逐行扫描水印图像的坐标x,y所构成的矩阵4、对每个像素的x,y坐标进行Arnold变换。二:将置乱后的秘密图像写入载体的最低有效位,形成伪装载体。四、程序清单[filename,pathname]=uigetfile('*.bmp','pickasecretiveimagefile');fn=[pathnamefilename];inImg=imread(fn);iTimes=input('PleaseinputArnordscrambletimes[1]:');ifisempty(iTimes)iTimes=1;endw=inImg;M=w;Size_w=size(w);subplot(2,2,1);imshow(w);title('置乱前的秘密图像');[c,d,e]=size(w);w1=zeros(c,d,e);Temp=zeros(c,d,e);encryImg=inImg;fork=1:iTimesfori=1:cforj=1:dTemp=encryImg;i1=i+j;j1=i+2*j;i1=mod(i1,c);j1=mod(j1,d);if((i1~=0)&&(j1~=0))w1(i1,j1)=Temp(i,j);信息隐藏技术实验报告实验名称实验1基于置乱的信息隐藏算法日期2014-05-09专业班级实验人学号姓名:江西理工大学实验报告纸第2页/共2页endendendencryImg=w1;endsubplot(2,2,2);imshow(encryImg);title('置乱后的秘密图像');[filename,pathname]=uigetfile('*.bmp','pickacarrierimagefile');fn=[pathnamefilename];CarrierImg=imread(fn);subplot(2,2,3);imshow(CarrierImg);title('需要嵌入秘密消息的载体源图像');StegoC=bitset(CarrierImg,1,encryImg);subplot(2,2,4);imshow(StegoC);title('嵌入秘密消息后的伪装载体');五、实验调试记录六、实验结果及其分析七、实验心得本次实验主要目的是让我们了解信息隐藏基本原理及图像加密技术的基本思想;掌握Arnold置乱算法和位平面算法并且完成8位BMP灰度图像的置乱预处理;最后将置乱后的秘密图像信息隐藏到载体图像的最低有效位中。在实验之前一定要做准备工作,然后用matlab编写程序,实验开始时还不知道怎么下手,后面在老师的讲解下还是完成了实验,也很好的掌握了Arnold置换的算法思想。