当前位置:文档之家› 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形成秘密图像
相关主题