实验1 基于置乱的信息隐藏算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
江 西 理 工 大 学
江 西 理 工 大 学 实 验 报 告 纸
第 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','pick a secretive image file'); fn=[pathname filename]; inImg=imread(fn);
iTimes=input('Please input Arnord scramble times[1]:'); if isempty(iTimes) iTimes=1; end
w=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; for k=1:iTimes for i=1:c
for j=1:d
Temp=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);
信息隐藏技术 实验报告
姓名: 江 西 理 工 大 学 实 验 报 告 纸
第 2 页/共 2页
end end end encryImg=w1; end
subplot(2,2,2); imshow(encryImg);
title('置乱后的秘密图像');
[filename,pathname]=uigetfile('*.bmp','pick a carrier image file'); fn=[pathname filename]; 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 置换的算法思想。