信息隐藏实验三LSB图像信息隐藏剖析_第1页
信息隐藏实验三LSB图像信息隐藏剖析_第2页
信息隐藏实验三LSB图像信息隐藏剖析_第3页
信息隐藏实验三LSB图像信息隐藏剖析_第4页
信息隐藏实验三LSB图像信息隐藏剖析_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验三:lsb图像信息隐藏一、实验目的了解信息隐藏中最常用的lsb算法的特点,掌握lsb算法原理,设计并实现 一种基于图像的lsb隐藏算法;了解如何通过峰值信噪比来对图像进行客观评 价,并计算峰值信噪比值。二、实验环境(1) windows 7操作系统;(2) matlab r2012版本软件;(3) bm舲式灰度图像文件。三、原理简介任何多媒体信息在数字化时都会产生物理随机噪声,而人的感官系统对这些 随机噪声并不敏感。替换技术就是利用这个原理,通过使用秘密信息比特替换随 机噪声,从而实现信息隐藏目的。在bm欢度图像的位平面中,每个像素值为 8比特二进制,表示该点亮度。图像高位平面对图像感官质

2、量起主要作用,去除图像最低几个位平面并不会 造成画面质量的明显下降。利用这个原理可用秘密信息(或称水印信息)替代载 体图像低位平面以实现信息嵌入。本算法选用最低位平面来嵌入秘密信息。 最低位平面对图像的视觉效果影响 最轻微,但很容易受噪声影响和攻击,可采用冗余嵌入的方式来增强稳健性加以 解决,即在一个区域(多个像素)中嵌入相同的信息,提取时根据该区域中的所 有像素判断。四、实验步骤(4) 藏提取及测试算法分为三个部分实现:(1)隐藏算法;(2)提取算法;(3)测试脚本。1)隐藏算法源代码hide_lis.m 如下:function o = hide_lsb(block,data,i)%func

3、tion o = hide_lsb(block,data,i)%急藏提取及测试%block:隐藏的最小分块大小%data:秘密信息%i:原始载体si = size(i);lend = length(data);n = floor(si(2)/block(2);%等图像划分为 m*n小块m = min(floor(si(1)/block(1),ceil(lend/n);o = i;for i = 0 : m-1啾算每小块隐藏的秘密信息rst = i*block(1) + 1;red = (i+1)*block(1);for j = 0 : n-1%+算每小块隐藏的秘密信息的序号idx = i*n

4、 + j + 1;if idx lendbreak;end%取每小块隐藏的秘密信息bit = data(idx);%计算每小块水平方向起止位置cst = j*block(2) + 1;ced = (j+1)*block(2);%等每小块最低位平面替换为秘密信息o(rst:red,cst:ced) = bitset(o(rst:red,cst:ced),1,bit);endend2)提取算法源代码dh_lsb.m如下:function out = dh_lsb(block,i)%function out = dh_lsb(block,i)%代码dh_lsb.m如下:%block:隐藏的最小分块大

5、小%i:携密载体si = size(i);%等图像划分为m*nm、块n = floor(si(2)/block(2);m = floor/block(2);out =;%计算比特1判决阀值:每小块半数以上元素隐藏是比特1时,判决该小块嵌入信息为1thr = ceil(block(1)*block(2) + 1)/2);idx = 0;for i = 0 : m-1%+算每小块垂直方向起止位置rst = i*block(1) + 1;red = (i+1)*block(1);for j = 0 : n-1%计算每小块将要数据的秘密信息的序号idx = i*n + j + 1;%计算每小块水平方向

6、起止位置cst = j*block(2) + 1;ced = (j + 1)*block(2);%1取小块最低位平面,统计1比特个数,判决输出秘密信息tmp = sum(sum(bitget(i(rst : red,cst : ced),1);if (tmp = thr)out(idx) = 1;elseout(idx) = 0;endendend3)测试脚本源代码test.m如下:fid = 1;len = 10; %随机生成要隐藏的秘密信息d = randsrc(1,len,0 1);block = 3,3;fn,pn = uigetfile( * .bmp , bmp file(* .b

7、mp) ;,选择载体);s = imread(strcat(pn,fn);ss = size(s);if (length(ss) = 3)i = rgb2gray(s);elsei = s;endsi = size(i);sn = floor(si(1)/block(1)*floor(si(2)/block(2);tn = length(d);呦口果载体图像尺寸不足以隐藏秘密信息,则在垂直方向上 复制填充图像if sn 3)i = rgb2gray(y);elsei=y;end%调用提取算法,获得秘密信息out = dh_lsb(block,i);%+算误码率len = min(length(

8、d),length(out);rate = sum(abs(out(1:len)-d(1:len)/len;y = 1 - rate;fprintf(fid, lsb:len:% dt error rate:% ft error num:% dn ,len,rate,len*rate);(5) 算峰值信噪比(1)峰值信噪比定义:psnr= xymax2p x,yx,y (px,y- px,y)x,y(2)峰值信噪比函数。(3)测试脚本。1)峰值信噪比函数源代码psnr.m如下:function y = psnr(org,stg)y = 0;sorg = size(org);sstg = siz

9、e(stg);if sorg = sstgfprint(1, org and stg must have same size! n);endnp = sum(sum(org - stg).a2);y = 10*log10(max(max(double(org.a2)*sorg(1)*sorg(2)/np);2)测试脚本org = imread( lena.bmp);stg = imread( hide.bmp);fprintf(1, psnr=:%fn ,psnr(org,stg);五、实验总结 依据所编写的代码,运行测试脚本test.m ,具体过程如下图1图4所示:图1选择测试载体图像oo一法译隋m载球 逐四一lsb图嫉信“,l&b曼噱售室忌范(=)图2 选择隐蔽载体文件command window testlsb : len: 10 error racte: 0. ogqooo error hiuil: 0 t est_psnrpsnr=:58, 946563a 图3 测试代码运行结果从上图3可以得知:此次代码运行中lsb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论