本发明属于数字水印技术领域,尤其涉及一种基于分块合并策略的pvo数字水印方法。
背景技术:
近些年来,在军事、医学、遥感图像处理等领域中,对于原始图像进行分析和研究,通过调整人眼对于图像中不敏感区域的信息,提出了可逆水印技术。在提取水印之后,原始图像可以被准确无误的恢复;其中一种像素值排序(pvo)的技术受到了许多关注,将原始图像划分成等大小的块之后,给定块内的像素并根据像素值排序,然后通过修改每个分块的最大值和最小值来实现数据嵌入。对于给定的嵌入容量,最终搜索最佳分块大小,以使嵌入失真最小化;由于同一分块中的像素通常具有很强的相关性,所以该方法有着良好的嵌入性能。pvo嵌入性能与其分块大小有显著的相关性;使用固定的分块方案极大地限制了方案的能力。
综上所述,现有技术存在的问题是:pvo水印方案中,固定的分块方案极大地限制了方案的能力。pvo嵌入性能与分块大小有着明显的相关性,使用较大的块固然可以得到较高的性能,但却导致了嵌入容量的减少;为了满足较高的嵌入容量,必须使用较小的块,从而导致了图像质量的降低。
技术实现要素:
针对现有技术存在的问题,本发明提供了一种基于分块合并策略的pvo数字水印方法。
本发明是这样实现的,一种基于分块合并策略的pvo数字水印方法,所述基于分块合并策略的pvo数字水印方法包括以下步骤:
步骤一,读取原始灰度图像并将其分为不重复的2*2大小的块;
步骤二,对每一个分块计算其局部复杂度并在位图中标记;
步骤三,对位图进行无损数据压缩并作为辅助信息的一部分等待嵌入;
步骤四,2*2分块的嵌入,对于复杂度小于t1的块进行pvo的嵌入;
对于分块xi={x1,...,xn},复杂度的定义如下:
nli=var(x2,…,xn-1)
这里var表示求方差。
步骤五,第一层合并:对于局部复杂度大于t1的2*2的块,计算与相邻块的相似度sim,根据相似度大小,将相似度小于s的相邻块进行合并,形成一个大小为8的分块;
对于待合并的分块x={x1,...,xn}和y={y1,...,yn},相似度sim的定义如下:
步骤六,对于合并后的块,再次计算其复杂度并根据阈值t2进行pvo的嵌入;
步骤七,第二层合并:对于不满足要求的块,根据相邻块之间的位置关系,将满足要求的块合并成一个4*4的块;
步骤八,合并后的块,再次计算复杂度并根据阈值t3进行pvo的嵌入;
步骤九,使用lsb替换的方法进行辅助信息的嵌入,并将替换下来的lsb序列作为负载的一部分进行嵌入;嵌入完成;
阈值t1,t2,t3与具体图像和嵌入容量有关,通过遍历所有组合选择不同容量下最优的阈值。
步骤十,从嵌入后的水印图像的指定像素中读取lsb以获得辅助信息;
步骤十一,从辅助信息中得到压缩后的位图并解压;
步骤十二,按嵌入时的方案将图像分成2*2大小不重复的块并计算复杂度;
步骤十三,水印提取;
步骤十四,根据提取的数据得到被替换的lsb序列,将其替换回原来的位置,得到原始图像。
进一步,所述步骤五具体包括:
(a)对于不满足要求的块,计算其与相邻块的相似度sim;
(b)根据相似度大小,将sim<s的相邻块进行合并,形成一个大小为8的分块,2*4或4*2。
进一步,所述步骤十三具体包括:
(a)从复杂度小于阈值t1的2*2的块中提取出第一部分水印;
(b)对剩下的块根据阈值s按相似度sim进行第一层合并;
(c)从合并的块中根据阈值t2提取出第二部分水印;
(d)对(c)中剩下的块进行第二层合并及提取。
进一步,所述辅助信息的嵌入读取图像的前
进一步,所述辅助信息包括:
三层嵌入的复杂度阈值t1(8bits),t2(8bits),t3(8bits);
第一次合并的相似度阈值s(8bits);
水印结束标记
压缩后的位图长度
压缩后的位图lm(lclmbits)。
本发明的优点及积极效果为:通过计算相似度,将分块由小到大一层层合并,实现了动态控制分块的大小,有效提升了分块内像素的相关性,实现了在相同嵌入容量下获得更少的图像失真,大大提升了嵌入后图像的psnr(峰值信噪比);可用于秘密信息的可逆隐藏。表1是本发明在lena,airplane,barbara等三张图上不同嵌入容量下psnr的实验数据对比。由于4*4分块方案在三张图片上最大嵌入容量均无法达到20000bits,所以嵌入容量20000bits的情况下只比对了2*2分块方案。根据表格可以看出,相较于固定分块的方案,本发明在不同嵌入容量下psnr均有一定的提升。
表1
附图说明
图1是本发明实施例提供的基于分块合并策略的pvo数字水印方法流程图。
图2是本发明实施例提供的基于分块合并策略的pvo数字水印方法实现流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,
对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面结合附图对本发明的应用原理作详细的描述。
如图1所示,本发明实施例提供的基于分块合并策略的pvo数字水印方法包括以下步骤:
s101:读取原始灰度图像并将其分为不重复的2*2大小的块;
s102:对每一个分块计算其局部复杂度并在位图中标记;
s103:对位图进行无损数据压缩并作为辅助信息的一部分等待嵌入;
s104:2*2分块的嵌入,对于复杂度小于t1的块进行pvo的嵌入;
s105:第一层合并:
s106:对于合并后的块,再次计算其复杂度并根据阈值t2进行pvo的嵌入;
s107:第二层合并:对于不满足要求的块,根据相邻块之间的位置关系,将满足要求的块合并成一个4*4的块;
s108:合并后的块,再次计算其复杂度并根据阈值t3进行pvo的嵌入;
s109:使用lsb替换的方法进行辅助信息的嵌入,并将替换下来的lsb序列作为负载的一部分进行嵌入;
s110:从指定像素中读取lsb以获得辅助信息;
s111:从辅助信息中得到压缩后的位图并解压;
s112:按嵌入时的方案将图像分成2*2大小不重复的块并计算复杂度;
s113:水印提取;
s114:根据提取的数据得到被替换的lsb序列,将其替换回原来的位置,从而得到原始图像。
步骤s105具体包括:
(a)对于不满足要求的块,计算其与相邻块的相似度sim;
(b)根据相似度大小,将sim<s的相邻块进行合并,形成一个大小为8的分块(2*4或4*2)。
步骤s113包括:
(a)先从复杂度小于阈值t1的2*2的块中提取出第一部分水印;
(b)对剩下的块根据阈值s按相似度sim进行第一层合并;
(c)从合并的块中根据阈值t2提取出第二部分水印;
(d)对(c)中剩下的块进行第二层合并及提取,方法如(b)(c)。
下面结合附图对本发明的应用原理作进一步的描述。
如图2所示,本发明实施例提供的基于分块合并策略的pvo数字水印方法包括以下步骤:
一、水印的嵌入
步骤1,对原始灰度图像进行分块;
将图像分为2*2大小的互不重叠的分块。
步骤2,分块预处理;
对每一个分块,计算其局部复杂度nl,并将可能会导致溢出的分块(块内像素值为0或255)在位图中进行标记,对位图进行无损数据压缩并将其作为辅助信息的一部分等待嵌入;
步骤3,2*2分块的嵌入;
根据t1,对nl<t1的块进行pvo嵌入,nl>t1的分块留待合并;
步骤4,第一层合并及嵌入;
对于局部复杂度大于t1的2*2的块,计算其与相邻块的相似度sim,根据相似度大小,将相似度小于s的相邻块进行合并,形成一个大小为8的分块(2*4或4*2)。
对于合并后的块,再次计算其复杂度,并根据t3,对复杂度小于t2的块进行pvo嵌入。
步骤5,第二层合并及嵌入;
对于步骤4中合并后未用来嵌入(复杂度大于t3)的块,根据相邻块的位置关系,将满足要求的块合并成一个4*4的块对于合并后的块,再次进行复杂度的计算,对复杂度小于t3的块进行pvo嵌入。
步骤6,辅助信息嵌入
读取图像的前
辅助信息包括:
三层嵌入的复杂度阈值t1(8bits),t2(8bits),t3(8bits);
第一次合并的相似度阈值s(8bits);
水印结束标记
压缩后的位图长度
压缩后的位图lm(lclmbits)。
二、水印的提取过程
步骤1,辅助信息获取;
读取图像前
步骤2,图像分块及预处理;
按嵌入时的方案将图像分成2*2大小不重复的块计算每一个分块的复杂度;
步骤3,2*2分块水印提取;
根据t1,从复杂度小于t1的块中提取出第一部分水印;
步骤4,第一层合并及提取;
采用与嵌入时相同的合并,将相似度sim小于s的相邻的块进行第一次合并,计算每一个合并后的块的复杂度并排序,从复杂度小于t2的块中提取出第二部分水印。
步骤5,第二层合并及提取;
将步骤4中未用到的块根据相邻块的位置关系,合并成4*4的块;计算每一个合并后的块的复杂度并排序,从复杂度小于t3的块中提取出第三部分水印。
步骤6,图像恢复
根据上述步骤中提取的数据得到原始的slsb序列,将其替换回原来的位置,得到原始图像。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。