图像信息隐藏与水印
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【实验环境】
• (1) Windows XP或Vista操作 系统 • (2) MATLAB7.1科学计算软件 • (3) BMP灰度图像文件
【原理简介】
• 多媒体信息在数字化时,会产 生物理随机噪声,而人的感观 系统对这些随机噪声不敏感。 替换技术就是利用这个原理, 通过使用秘密信息比特替换随 机噪声,从而完成信息隐藏目 标。
【原理简介】
• 调色板图像含有一个不超过 256种颜色的调色板,并对应 每种颜色的R、G、B三种分量 的值,图像内容中的每个像素 存储的是一个不超过8比特的 索引值,其指向调色板中的对 应颜色就是图像的真实色彩。 大部分图像用到的颜色数小于 256种,甚至小于128种,因此 可以在调色板中隐藏秘密信息。
• 其他方法来隐藏信息:对于调 色板中的每一种颜色,可以通 过修改颜色的蓝色分量(人眼 对于绿色分量最为敏感,对蓝 色分量最不敏感)来增加一种 接近的但不完全相同的颜色, 这样就形成一个扩展的调色板。
• 嵌入算法如下:对调色板中所 有颜色,把像素点的蓝色分量 增加,然后将这种颜色添加到 调色板中形成一个扩展调色板。 根据需要嵌入的消息长度,随 机选取隐藏的位置,当嵌入0 的时候,使用原调色板中的颜 色,当嵌入1的时候,使用扩 展后调色板中的颜色。
• 调色板图像的调色板中最多包含256种 颜色,若改变这些颜色的排列顺序并相 应的改变图像像素数据,不会对图像内 容造成任何影响。因此隐藏秘密信息最 简单方法就是重新排列调色板中的这些 颜色,同时修改索引值,但是许多软件 生成的调色板都是按照亮度和使用频率 排列的,如果在调色板中打乱颜色会使 其毫无隐藏可言。如果调色板颜色小于 128种,可复制一个调色板,得到一个 扩展的调色板,隐藏0使用原始索引值, 隐藏1使用扩展索引值,但是重复颜色 的调色板会引起使用者怀疑。
3.2 二值图像信息隐藏
• 【实验目的】 • 【实验环境】 • 【原理简介】 • 【实验步骤】 • 【思考题】
【实验目的】
• 了解二值图像的特点,掌握基 于二值图像的信息隐藏原理, 设计并实现两种基于二值图像 的信息隐藏方法。
【实验环境】
• (1) WindowsXp或Vista操作系 统 • (2) MATLAB7.1科学计算软件 • (3) 二值图像文件
【思考题】
• 1.LSB算法可以替换最低位,也可以 采用随机算法来替换低第四位中的 任何一位,因为图像低四位中的任 意一位的改变不影响图像文件的视 觉效果,自行设计一个LSB隐写算法, 将秘密信息随机嵌入到原始载体每 个像素的低四位中的任意一位。 • 2.设计一种算法,用水印信息(二 值图像)的高四位替换载体图像 (灰度图像)的低四位,并提取水 印信息。
【原理简介】
• Patchwork是指从载体数据中 选择一些数据组成两个集合, 然后通过修改这两个集合之间 的某种关系来携带水印信息。 这两个集合可以是两个系数、 两组系数或者是两个特征量。 两个集合之间的关系可以是大 小关系、能量关系、逻辑关系 和奇偶性关系等。
• Patchwork方法嵌入水印时, 通过修改集合之间的某种关系 来嵌入水印;提取水印时,则 根据对应的关系来提取嵌入的 水印信息。Patchwork方法最 大优点之一就是可以实现盲检 测。Patchwork可以适用于时/ 空域、变换域和压缩域,本节 主要介绍时域下的典型 Patchwork方法。
【实验步骤】
• (1)隐藏算法 • (2)计算峰值信噪比
(1)隐藏算法 算法分为三个部分实现: • 隐藏算法 • 提取算法 • 测试脚本
(2)计算峰值信噪比 • 峰值信噪比定义:
PSNR XY max
x, y
ቤተ መጻሕፍቲ ባይዱ
px , y px , y
x, y
2 px ,y
2
• 峰值信噪比函数 • 测试脚本
游程编码像素分布图
• 秘密信息嵌入的时候修改二值图像的游 程长度,如果秘密信息位是0,则修改 该游程长度为偶数;如果为1,则修改 游程长度为奇数;如果秘密信息的取值 与游程长度的奇偶性相匹配,则不改变 游程长度。提取的时候根据游程长度奇 偶性提取出秘密信息。在隐藏信息的时 候,改变游程的奇偶性是通过对下一个 游程的第一个像素的像素值进行修改, 因此当下一个游程的值为1的时候不能 修改。修改后的游程长度不能隐藏信息, 因此隐藏信息的位置是选取游程长度数 组的偶数位来隐藏。
• 该方法存在一定的缺陷,没有 明确界定哪些像素可以修改以 便于隐藏秘密信息,二值图像 中某些像素的修改可能会引起 二值图像视觉效果上的较大变 化,相应的水印嵌入算法可能 在较大程度破坏图像的质量。 • 为达到较好的隐藏效果,可以 采用游程编码方法在二值图像 中隐藏信息。
• 游程编码的概念在图像压缩的 过程中经常使用,如下图所示 的编码为:<0,3>, <1,5>, <0,4>, <1,2>,<0,1>。其中0 表示白色像素点,1表示黑色 像素点。
• 在信号的频域(变换域)中隐藏 信息要比在时域中嵌入信息具有 更好的鲁棒性。一副图像经过时 域到频域的变换后,可将待隐藏 信息藏入图像的的显著区域,这 种方法比LSB以及其他一些时域水 印算法更具抗攻击能力,而且还 保持了对人类感官的不可察觉性。 常用的变换域方法有离散余弦变 换(DCT)、离散小波变换(DWT) 和离散傅立叶变换(DFT)等 。
• 提取的时候,需要知道原始调 色板的长度、随机选择的种子 数和隐藏的信息数量,对于选 中的像素点,如果使用原调色 板中的颜色,提取信息0,如 果使用扩展调色板中颜色数, 提取信息1。
【实验步骤】
• 1.嵌入秘密信息 • 2.提取秘密信息
3.5 DCT域图像水印
• 【实验目的】
• 【实验环境】 • 【原理简介】
【实验步骤】
• 1.嵌入秘密信息 • 2.提取秘密信息 原始图像和携密图像从视觉效 果上几乎相同。提取时,首先 将两个图像块集合的样本分别 求平均值,计算两个样本均值 的差来判断水印信息是否存在。 把整个图像中的像素全部分成 两组,也可以通过随机的方式 实现。
【思考题】
• 1.本节介绍的方案都是假设A和B 两个集合在未修改之前样本的均 值相同,但实际情况下样本均值 之间的差异并不总为零。读者可 自行从图像的像素中挑选A和B两 个集合,使得这两个集合样本的 均值尽量接近,越接近,隐藏和 提取的效果越好。设计并实现一 种Patchwork算法,使得挑选的 两个集合A和B的均值尽可能接近。
• BMP灰度图像的位平面图如右,每 个像素值为8bit二进制值,表示 该点亮度。 • 不同位平面对视觉影响不同,可 用下面系列图像表示。
去除第一位平面的图像和第一位平面
去除第1-4位 平面的图像和 第1-4位平面
去除第1-7位平面的Lena图像和第1-7位平面
• 图像高位平面对图像感官质量起主要作 用,去除图像最低几个位平面并不会造 成画面质量的明显下降。利用这个原理 可用秘密信息(或称水印信息)替代载 体图像低位平面以实现信息嵌入。 • 算法选用最低位平面来嵌入秘密信息。 最低位平面对图像的视觉效果影响最轻 微,但很容易受噪声影响和攻击,解决 办法可采用冗余嵌入的方式来增强稳健 性。即在一个区域(多个像素)中嵌入 相同的信息,提取时根据该区域中的所 有像素判断。
• 【实验步骤】
• 【思考题】
【实验目的】
• 了解频域水印的特点,掌握基 于DCT系数关系的图像水印算 法原理,设计并实现一种基于 DCT域的图像水印算法。
【实验环境】
• (1) WindowsXP或Vista操作系 统 • (2) MATLAB7.1科学计算软件 • (3) 图像文件
【原理简介】
3.4 调色板图像隐写
• 【实验目的】
• 【实验环境】 • 【原理简介】
• 【实验步骤】
【实验目的】
• 了解调色板图像的特点,掌握 基于调色板图像的信息隐藏原 理,设计并实现一种基于调色 板图像的信息隐藏算法。
【实验环境】
• (1) WindowsXP或Vista操作系 统 • (2) MATLAB7.1科学计算软件 • (3) 调色板图像
3.3 Patchwork图像信息隐藏
• 【实验目的】
• 【实验环境】 • 【原理简介】
• 【实验步骤】
• 【思考题】
【实验目的】
• 了解Patchwork信息隐藏特点, 掌握基于Patchwork的图像信 息隐藏原理,设计并实现一种 基于Patchwork信息隐藏方法。
【实验环境】
• (1) Windows XP或Vista操作 系统 • (2) MATLAB7.1科学计算软件 • (3) BMP图像
• 下面介绍一种提取秘密信息的时候不 需要原始图像的盲水印算法。算法的 思想是利用载体中两个特定DCT系数 的相对大小来表示隐藏的信息。载体 图像分为8×8分块,进行二维DCT变 换,分别选择其中的两个位置,比如 用(u1,v1)和(u2,v2)代表所选定的两 个系数的坐标。如果 Bi(u1,v1)>Bi(u2,v2),代表隐藏1, 如果相反,则交换两系数。如果 , 代表隐藏0,如果相反,则交换两系 数。
• Patchwork方法典型算法只能隐藏 1bit的信息,也就是只能说明该 图像是否存在水印,隐藏的信息 量比较小,但是该算法的鲁棒性 较强。该算法的原理如下:随机 选择两个集合A={ai}和B={bi}, 要求A和B中含有相同图像系数, 设为n;将集合A中所有样点的像 素值增加d,同时将集合B中所有 样点的像素值减少d,这样两个集 合中的样值都经过微小的改动。
第三章
图像信息隐藏与水印
3.1 LSB图像信息隐藏
• 【实验目的】 • 【实验环境】 • 【原理简介】 • 【实验步骤】 • 【思考题】
【实验目的】
• 了解信息隐藏中最常用的LSB算 法特点,掌握LSB算法原理,设 计并实现一种基于图像的LSB隐 藏算法; • 了解如何通过峰值信噪比来对图 像质量进行客观评价,并计算峰 值信噪比。
为改变上述算法,可以采用游 程编码方法在二值图像中隐藏 信息。采用游程编码方式隐藏 的信息量较大,而且隐写后的 载体图像和原始载体图像从视 觉效果上看差别不大,是较好 的一种二值图像信息隐藏方法。
【思考题】
• 1.二值图像信息隐藏另一种方 法原理如下:将二值图像分块, 使用一个与图像块大小相同的 密钥二值图像块,与每一个图 像块按像素进行“与”运算, “与”运算的结果可以确定是 否在该块中嵌入数据,或嵌入 怎样的数据。设计并实现该算 法。
• 选择集合A和B的方法很多,但 PatchWork方法是基于以下假设的,也 就是说随机选择的两个样本集合的均 值相同。本节中方法是根据图像的横 坐标和纵坐标之和的奇偶性不同将图 像分为两组,将横坐标和纵坐标之和 为偶数的所有系数上增加常量d=2.3, 将横坐标和纵坐标之和为奇数的所有 系数上减少常量d=2.3。第二种方法是 随机选择N对像素点(ai和bi),然后 将ai点的值增加d,将bi点的像素值减 少d。
【原理简介】
• 二值图像又称为单色图像或黑白图像, 一般用1或者0表示黑色或白色像素点, 利用二值图像信息隐藏的方法主要是根 据二值图像中黑白像素的数量的比较来 隐藏信息。方法是把一个二值图像分成 一系列矩形图像区域B,某个图像区域B 中黑色像素的个数大于一半,则表示嵌 入0;如果白色像素的个数大于一半, 则表示嵌入1,但是当需要嵌入的比特 与所选区域的黑白象素的比例不一致时, 为了达到希望的像素关系,则需要修改 一些像素的颜色。
【实验步骤】
• 1.嵌入秘密信息 • 2.提取秘密信息 提取秘密信息时,提取方需知 道隐藏的秘密信息的数量,使 用隐藏的秘密信息的数量值来 对载体图像进行分块。 • 3.游程编码方法在二值图像中 隐藏信息
携秘载体在视觉效果上和原始载体 有很大变化,通过不断修改 hidden.txt文本的值来增加隐藏的 信息容量。隐藏的信息越多,图像 的分块就越细,隐藏的效果就越好。 方案中修改像素的位置非常固定, 都是修改每个图像块的所有行前面 的像素,这样隐藏信息后的图像在 视觉效果上和原始图像存在较大差 别,违背了信息隐藏不改变视觉效 果的原则。