题目信息隐藏和数字水印
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、 题目:信息隐藏和数字水印
给定一副图象和一段文字,请设计某种图象处理方法将这段文字隐藏下面的图片中
二、 完成时间:
三、 实验图像: nju.bmp:
实验文字: 大哉一诚天下动,如鼎三足兮,曰知、曰仁、曰勇。
千圣会归兮,集成于孔。
下开万代旁万方兮,一趋兮同。
踵海西上兮,江东;
巍巍北极兮,金城之中。
天开教泽兮,吾道无穷;
吾愿无穷兮,如日方暾。
四、 基本原理和数学公式
1、 信息隐藏技术的基本原理:
考虑以一幅256色 ( 8 bit ) 灰度图像A (a a N M ⨯)作为掩体对象,嵌入对象可以是任何一种数据,这里以另外一幅256色灰度图像B (b b N M ⨯)为例。要利用A 的冗余信息来隐藏B ,一定要有
a a
N M ⨯b b N M ⨯。当然这是在要求B 不经过压缩而被隐藏的情
况下所需的条件。
基于最低有效位的图像信息隐藏技术,实际上是利用图像的视觉冗余。对于灰度图像,人眼不能分辨全部256个灰度等级,4个左右灰度等级的差异人眼是不能区别的。而当对比度比较小时,人眼的分辨能力更差。我们先看看8 bit 数据的最后几位对图像的影响。下面四幅图是将lena 图像各像素的最后几位分别提取出来并转换成二值图像所得到的结果:
左上:原图;右上:低位第二位;左下,低位第三位;右下低位第四位
可以看到,数据的低位第二位看起来像噪声,在视觉上与原图像没有相关性,到低位第四位才能看出与原图的联系。
换一个角度考察,与上面的分析相对应,下面是将图像lena各像素最后几位数据分别经过随机化之后得到的结果:
左上:将各字节最后一位加入随机噪声的结果;
右上:将各字节最后两位加入随机噪声的结果;
左下:将各字节最后三位加入随机噪声的结果;
右下:将各字节最后四位加入随机噪声的结果。
可以看到如果改变每个像素8 bit中的最后两位甚至三位,人眼都是分辨不出有什么区别的。这样我们就可以将嵌入对象的数据存放到这几位中,从而达到隐藏信息的目的。五、程序流程图
六、说明
1、实际上为了简单起见,数据加密,置乱变换,差错控制都没有做,直接拿原图像插
入。
2、所给的实验图像采用了位域压缩(BitFields),不能用MatLab读取该图像,只能将
其转为24位真彩图像再读入。效果应该一样(网上好像有支持BitFields的Matlab 工具包,可惜不会用,存憾)
3、要求隐写的信息是一段文字。如果仅仅是隐藏该信息,可以有好多办法(比如取每
个字符的编码)这里为了简便程序,将其转为二值bmp图像如下。
七、其他问题
本实验所给算法是基于空域变换的。由于使用了图像不重要的像素位,算法的鲁棒性差,水印信息很容易为滤波、图像量化、几何变形的操作破坏,需要注意。
八、实验结果
嵌入水印后的图与提取的水印