当前位置:
文档之家› 5.1图象信息隐藏与水印算法(2)-数字水印基础教程
5.1图象信息隐藏与水印算法(2)-数字水印基础教程
28
隐藏算法
计算图像边界 筛选隐藏位置 数据预处理(加密、随机化等) 数据替换
29
提取算法(需要原始图像)
从原始图像确定隐藏位置 提取信息
30
隐藏了764bits
31
4 渐进图像数字水印
图像渐进传输技术
网络用户在浏览图片时,首先获得一幅模糊 图像,随着时间的推移,用户可以逐步获得 更加清晰的图像,而如果用户不想看这幅图 像的全貌,可以取消该图像的进一步传输。 这样即节省了用户的时间,又节省了网络带 宽
b a (1 s)
组合图像形成嵌入信息的图像
16
提取算法
将接收图像分为88 的图像块 嵌入位置上的值记为b’ 在嵌入位置上,初始值设为零,用插值算 法根据周围像素值计算这些位置的值,记 为a’(=a)
b' ( 1) s' a
组合s并反置乱
17
原始载体图像 Lena ,512512
R0 3
0
[ R0 , R0 ] [ R1 , R1 ]
0.5
R1 3
1
42
嵌入算法
嵌入1
修改像素值,使得黑色像素的比例在[R1,R1+] 如果修改太大,则标志为无效
修改像素值,使得黑色像素的比例大于R1+3或小于R0 -3
嵌入0
修改像素值,使得黑色像素的比例在[R0-, R0] 如果修改太大,则标志为无效
位图文件头 位图信息头 调色板 图像矩阵
47
调色板:
256种颜色索引列表 (i, RGBi) 大部分图像,用到的颜色数小于256 存在冗余
算法基础
48
嵌入算法
把图像中某一个已用到的颜色值,复制到一 个没有使用过的颜色索引对的颜色值 1 RGB1 2 RGB2 i RGBi 1 RGB1 2 RGB2 i RGB2
CPP :对被保护的数字产品 C 进行的 预处理 WPP :对数字水印 W 进行的预处理 G :数字水印嵌入算法 1 CPP :CPP 的逆操作 C:被保护的数字产品 W:水印信息 K:数字水印嵌入算法的密钥 5 CW :嵌入数字水印后的数字产品
数字水印框架
提取
C
CW
CPP
W' /水印是否
22
算法扩展
多址隐藏
选择多个不同的位置,嵌入多幅图像
23
Lena 原始图像
Airplane原始图像
隐藏了Airplane的Lena图PSNR=26.91db
24
被破坏的图像
恢复的Airplane PSNR=14.02db
25
Hall原始图像
49
编码规则
0:位于调色板前面的颜色索引 1:位于调色板后面的颜色索引 在图像中找到两个有相同颜色但不同索引的 像素 索引号小:0 索引号大:1
50
提取算法
特点:
对图像无任何修改 信息隐藏在调色板中
51
6 小波系数量化法
邻近值算法:对小波系数进行量化编码 嵌入
C 小波变换
修改像素值,使得黑色像素的比例大于R1+3或小于R0 -3
43
修改应在黑白交界处进行
数据修改方法
如果需要将某一个像素的最高位b修改为1-b, 则修改方法为: 在该像素周围的8个像素中,寻找最高位值 为1-b,并且与原像素值最接近的像素,用 它的值代替被修改像素的值
44
提取算法
图像渐进传输时,接收端首先收到图像 的最高位平面图像,该图像可以看作一 幅二值图像 将该图像分块,计算每一图像块中“黑” 像素所占的比例
38
Step3至Step7与前几步相类似
39
40
渐进图像水印算法
图像渐进传输中第一阶段传输的是最高 位平面,在接收端接收到的实际上是一 个二值图像 为了在渐进传输的第一阶段可以恢复水 印数据,需要将数据隐藏到最高有效位 上,数据的隐藏类似一个二值图像的水 印隐藏
41
嵌入算法
将图像分为8x8的块,将每个图像块分为 8个位平面,从高位到低位依次记为 P0,P1,…P7。P0是要隐藏数据的位平面 将最高位平面作为一幅二值图像进行数 据隐藏。计算每一个块中的“黑”像素 (即:值为1)的出现频率 P1 ( P 0)和 P0 ( P 0) “白”像素(即:值为0)的出现频率
5.1 图像信息隐藏(数字水印) 算法
图像水印算法介绍
普通图像水印 图像鲁棒性水印 图像脆弱性水印
2
数字水印三要素
水印本身的结构
版权所有者、合法使用者等具体信息 伪随机序列 图标
水印嵌入算法 水印检测算法
3
数字水印框架
嵌入
C
CPP
G
W
CPP
1
CW
WPP
K
4
53
提取
水印提 取处理
小波变换
置乱恢复
K
(b)水印提取过程
54
数字水印分存的思想
密钥分存:将一个密钥分解成n份,只有 知道了其中的至少t份(t小于等于n)才 能恢复出原来的秘密信息 数字水印分存算法实际上就是密钥分存 的思想应用于数字水印
55
7 基于Lagrange插值的密钥分 存水印算法
Step2
计算原图像中所有前三位最高有效位为 111、110、101、100、011、010、001 和000的像素值的平均值,记为Ck 向客户端传输最高有效位平面P2和Ck 客户端利用接收到的数据重建图像,首 先使用已接收到的最高有效位为计算重 建图像的像素值,再使用Ck的值计算新 的像素值
27
满足以下条件的位置不能隐藏数据:
该像素既是其所在区域的左边界,同时又是右边界; 该像素既是其所在区域的上边界,同时又是下边界; 该像素只是左边界、右边界、上边界、下边界四种 边界情况中的一种情况; 该像素的周边八个像素中与该像素同色的所有像素 都是既是左边界或右边界,同时又是上边界或下边 界。
OC oc(i, j ),1 i, j N
OS os(i, j ),1 i, j N
14
伪随机置换:对原始秘密图像进行伪随 机置换,得到OS 将图像OS 和 OC分为大小分别为44和 88的图像块
15
嵌入算法
在OC的嵌入位置上,初始值设为零 用插值算法根据周围像素值计算这些位置的 值,记为a 计算新值b
10
1 图像插值数字水印
是一种空间域水印 图像插值的主要目的是确定图像中一些 未知像素值,可用于受损图像的修复, 图像的放大等处理操作
11
插值
12
算法实现
OC为原始载体图像 OS为原始秘密图像, N=N/2
OS
OC
13
算法实现
目的是将OS隐藏到OC中,并将得到的新 图像通过公开信道进行传送
基于DCT算法 取n=9, t=3 数字水印为二值图像,对水印图像进行 加密处理,形成随机噪声。对数据进行 适当分组,转化为十进制数 将十进制数分为n份(例如有限域上多项 式方法)
56
嵌入:将载体图像分为n份,每份嵌入分 存后的水印(例如用DCT一组系数比较 法) 提取:只要获得其中3份就可以恢复出水 印信息 1 2 3
如果大于R1+3或小于R0-3,无效块 如果在[R1,R1+],提取1 如果在[R0-, R0],提取0
45
仿真结果
R1=0.55, R0=0.45, 0.05
Lena图像
加载159bits水印的Lena PSNR = 49.6db
46
5 无失真数据隐藏算法
适用:以BMP格式存储的每像素8位编码 的图像 BMP文件:
D K
WRP
存在
6
D :数字水印提取算法 WRP:
对直接提取水印的算法,就是 WPP 的逆操作 对判决水印存在与否的算法,则就是数字水印的 判决算法 直接提取水印 判断水印是否存在
提取过程的输出:两种
提取过程中,是否需要原始载体,取决于嵌 入提取算法 7
根据预处理的不同,可以分为
原始秘密图像 Airplane ,256256
伪装后的载体图像. PSNR=43.12db
恢复的秘密图像. PSNR=29.83db.
18
特点
此算法是一个空间域的图像水印算法,它对 图像压缩、滤波等处理带来的破坏的抵抗力 较弱 适用于隐蔽传输(无干扰环境) 系数的选择:不能太大或太小
对载体图像做8x8的DCT变换
t1 t3 t2 t4
s3 s4 s1 s2
20
嵌入:
用t的值替换s的值
s t
越大,恢复的秘密图像的质量越好,而隐 藏后的载体图像质量则越差 越小,则情况相反
21
提取:
对载体图像做8x8的DCT变换 对相应位置计算: t (1 / ) s 组合t形成秘密图像