- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《信息隐藏算法》LSB实验
实验:LSB算法 姓名:王宇航 学号LSB算法
1 实验目的
1.掌握对图像的基本操作
2.能够用LSB算法对图像进行信息隐藏
3.能够用LSB提取算法提取隐藏进图像的信息
2 实验背景
将秘密信息嵌入到载体图像像素值的最低有效位,也称最不显著位,改变这一位置对载体图像的品质影响最小。
对空域的LSB做替换,用来替换LSB的序列就是需要加入的水印信息、水印的数字摘要或者由水印生成的伪随机序列。由于水印信息嵌入的位置是LSB,为了满足水印的不可见性,允许嵌入的水印强度不可能太高。然而针对空域的各种处理,如游程编码前的预处理,会对不显著分量进行一定的压缩,所以LSB算法对这些操作很敏感。因此LSB算法最初是用于脆弱性水印的。
3 实验过程
3.1 位平面的演示
对一幅24位的彩色图像,分为RGB通道,每个通道占用8个bit。为了展示各个位平面,需要把其他平面的值全部置为零,通过bit的与或能够做到,如对于一个二进制字节数把除了第三位的全部位置零的操作为0010010100000100把第二位置为1的操作00000010程序中依次对于每个通道的8个位,置其他通道以及本通道的其他平面为0,显示图像即可。Matlab用ones()和Zeros()分别生成0矩阵和值为1的矩阵。由于是从最高位向最低位分别与操作,故初始的矩阵mask的元素应该为1000 0000这个值可以由1矩阵左移7次得到。就一个通道来说,每次用原始矩阵IMG(,,i)=bitand(IMG(,,i),mask);就得到当前位平面的图像。程序中定义显示各个位平面的功能定义在showLayer(imgname)中,参数为图像名称:
用大小为512*512的lena.jpg作为演示图片,结果如下:
3.2 信息隐藏
从上面的图片中可以看出,无论是RGB三个通道,从MSB到LSB,图像轮廓从有变无,甚至在LSB层,不能看见任何轮廓,因此可以作为信息隐藏。对于一张图片尺寸可以通过size()函数计算出来,假如函数返回值为[x,y,z],对于彩色图像来说,z值通常为3.那么这张图片在每个通道的LSB都隐藏信息的情况下能够隐藏信息的容量为x*y*z(bits)的信息。当然有上图可知即使在高于LSB位上也隐藏信息,则对图像视觉感知也没强烈的影响。现在先对一个字节的信息B隐藏进行说明。
对于第i(1=i=8)位,要判断第i位的值是否为1。则可以判断(B00...1..0)(其中1的位置在第i位上)的值即可,若该值位0,说明B的第i位为0,反之为1则说明B的第i位也为1。判断是否为1后,对于一个像素A的最低位是否置1还是0也就确定了。下面说明如何实现对于一个8bit的像素LSB置0和1。
置0:A=bitand(A,1111 1110);
置1:A=bitor(A,0000 0001);
对于一个要隐藏的字节型数据,根据上述思路,判断每一位是否为1,依此对当前像素做置1或0。当然,多个字节也一样。并且在第一个字节隐藏的是隐藏的信息长度。以便于提取隐藏信息。
在hide.m中实现了上诉的隐藏过程。
hide(imgname,szInfoFile)
Imgname:图像名
szInfoFile:信息文件名
函数输出为嵌入信息的imbededImage.bmp图像。
嵌入信息为一个文档:input.txt。
从下图可以看出
嵌入字节信息长度为:192字节
可以看出,嵌入前后基本没有变化。
3.3 信息提取
信息提取过程和信息隐藏嵌入过程一样,不过在提取过程中,首先提取的是信息的长度,以便于提取信息的内容。
先说明怎么提取一个字节B信息。循环读取8个像素。对于一个像素字节A来说,得到当前的LSB位也就是(A0000 0001)这个值。这个值可能为1,也可能为0。再把0或者1写入到当前字节B的第i位。这个时候,写1的操作同上一样,通过bitor(,0..1..0)操作即可,写0操作是bitand(,1..0...1)实现。多字节的提取操作也一样。
程序中信息提取函数为:
extract( imgname,outputname)。Imgname为隐藏信息的文件名,outputname为提取隐藏信息输出的文件,下面调用:
extract(embededImage.bmp,output.txt);
得到输出到output.txt中的结果:
图中加亮的是提取的内容和input.txt一样。
您可能关注的文档
- regsvr32教程.doc
- REP第一章.ppt
- RIP配置.doc
- RTM材料的简单介绍.doc
- S242线箱涵开工报告.doc
- photoshop学习课件第9章.ppt
- SASO认证需要注意的事项及认证流程.doc
- SCET3状语从句.ppt
- SCMP个性解释.ppt
- SDH第08章.ppt
- 从银行承销视角看城投债发行有哪些变化.pdf
- 德福科技锂电PCB铜箔双龙头,高端化勇攀高峰.pdf
- 电力设备行业新型电力系统报告之四:电网发展回顾及后续展望,特高压稳步推进隐忧仍在,配网低于预期改革初见端倪.pdf
- 电力设备与新能源行业AIDC系列深度:海外大厂引领高压直流革命,800V产业化进程有望加速.pdf
- 电力行业5月月报:风光装机抢装进入高潮,火电电量增速由负转正.pdf
- 电子行业动态:Oracle签300亿美元大单,英伟达算力需求旺盛.pdf
- 豆神教育教育转型焕锋芒,AI教育拓疆界.pdf
- 多元金融行业寰宇通汇系列五:互联网券商Robinhood,一揽子交易提供商.pdf
- 非银金融行业深度研究报告:稳定币系列报告之一,从铸币到流通,稳定币生态拆解.pdf
- 分众传媒公司深度研究:收购扩渠道,携手支付宝打通转化链路,看好后续增长.pdf
文档评论(0)