发明内容
本发明提供一种数字水印嵌入与提取的方法及装置,用以解决现有技术中存在的在二值文本图像中嵌入的水印信息量较少,视觉效果较差的问题,进一步的用于解决水印提取过程对打印以及扫描深度不同变化攻击鲁棒性不强的问题。
本发明的构思在于,通过将文本图像中的字符区域按照一定数目进行分组、利用每个分组内的黑点个数之间的相对关系、通过选定的步长将水印信息嵌入到文本图像中,从而得到了一种数字水印的嵌入方法及装置。基于同一发明构思,将数字水印嵌入的方法中的过程相逆,即通过对嵌入水印的文本图像中的黑点个数的分组统计等将嵌入的水印信息提取,从而将文本图像还原,就可得到在二值文本图像中提取数字水印的方法及装置。
本发明中一种数字水印的嵌入方法,技术方案中包括如下步骤:
定位文本图像中的字符区域,并确定有效字符区域;
将有效字符区域进行分组,并统计各字符区域中的黑点个数;
根据分组内的各字符区域内黑点个数之间的相对关系、水印信息位串、以及第一步长计算出每个字符区域内需要翻转的像素第一个数,所述相对关系是:分别统计出m个字符区域所包含的黑点个数,并将m个字符区域平均分为两部分,其中一部分黑点个数总数之和减去另外一部分黑点个数总数之和,即构成所述的字符区域内的黑点个数之间的相对关系,所述第一步长是:步长奇偶法或奇偶嵌入法的步长,且不超过各字符区域内黑点个数总和的两倍,所述第一个数是:每m个字符区域的分组中根据相对关系和第一步长奇偶倍数的限制计算出需要翻转的像素点总和,将所述像素点总和除以m即为第一个数;
按所述第一个数翻转每个字符区域内的像素,翻转时具体为:沿每个字符的轮廓连续地翻转像素,需要增加黑色点时,沿轮廓遍历,翻转黑点八邻域内的白点为黑色,直到翻转了第一个数像素为止,需要减少黑点时,同样沿轮廓遍历,翻转轮廓黑点为白色,直到翻转第一个数像素为止。
较佳地,所述定位文档版面图像中的字符区域的方法是基于文本区域空间频率特征的纹理方法、和/或连通区域法、和/或神经网络法。
较佳地,所述有效字符是黑点个数大于600的字符。
较佳地,将所述有效字符按照m个为一组进行分组,m为任意大于零的偶数。
较佳地,所述水印信息位串是指用于表示信息的二进制数据的代码序列。
较佳地,所述第一步长是300。
基于同一发明构思,本发明还提供了一种数字水印的提取方法,技术方案中包括如下步骤:
定位文本图像中的字符区域,并确定有效字符区域;
将有效字符区域进行分组,并统计各字符区域中的黑点个数;
根据每个分组中的字符区域中黑点个数之间的相对关系及第一步长提取嵌入的水印信息位串,所述相对关系是,分别统计出m个字符区域所包含的黑点个数,并将m个字符区域平均分为两部分,其中一部分黑点个数总数之和减去另外一部分黑点个数总数之和,即构成所述的字符区域内的黑点个数之间的相对关系,所述第一步长是:步长奇偶法或奇偶嵌入法的步长,且不超过各字符区域内黑点个数总和的两倍。
较佳地,将所述有效字符按照m个为一组进行分组,m为任意大于零的偶数。
基于同一发明构思,本发明还提供了一种数字水印的嵌入装置,包括:
确定模块,用于定位文本图像中的字符区域,并确定有效字符区域;
分组统计模块,用于将有效字符区域进行分组,并统计各字符区域中的黑点个数;
计算模块,用于根据分组内的各字符区域内黑点个数之间的相对关系、水印信息位串、以及第一步长计算出每个字符区域内需要翻转的像素第一个数,所述相对关系是:分别统计出m个字符区域所包含的黑点个数,并将m个字符区域平均分为两部分,其中一部分黑点个数总数之和减去另外一部分黑点个数总数之和,即构成所述的字符区域内的黑点个数之间的相对关系,所述第一步长是:步长奇偶法或奇偶嵌入法的步长,且不超过各字符区域内黑点个数总和的两倍,所述第一个数是:每m个字符区域的分组中根据相对关系和第一步长奇偶倍数的限制计算出需要翻转的像素点总和,将所述像素点总和除以m即为第一个数;
翻转模块,用于按所述第一个数翻转每个字符区域内的像素,翻转时具体为:沿每个字符的轮廓连续地翻转像素,需要增加黑色点时,沿轮廓遍历,翻转黑点八邻域内的白点为黑色,直到翻转了第一个数像素为止,需要减少黑点时,同样沿轮廓遍历,翻转轮廓黑点为白色,直到翻转第一个数像素为止。
基于同一发明构思,本发明还提供了一种数字水印的提取装置,包括:
确定模块,用于定位文本图像中的字符区域,并确定有效字符区域;
分组统计模块,用于将有效字符区域进行分组,并统计各字符区域中的黑点个数;
提取模块,用于根据每个分组中的字符区域中黑点个数之间的相对关系及第一步长提取嵌入的水印信息位串,所述相对关系是,分别统计出m个字符区域所包含的黑点个数,并将m个字符区域平均分为两部分,其中一部分黑点个数总数之和减去另外一部分黑点个数总数之和,即构成所述的字符区域内的黑点个数之间的相对关系,所述第一步长是:步长奇偶法或奇偶嵌入法的步长,且不超过各字符区域内黑点个数总和的两倍。
本发明有益效果如下:
由于本发明不是考虑单个字符区域内绝对的像素个数,而是考虑了不同字符区域内的像素个数之间的相对关系,因此可以避免由于打印、扫描和复印过程中不同的浓度设置带来的单个字符区域内部像素绝对个数的变化,从而可以更好地抵抗打印、扫描和复印过程中的不确定因素攻击。
由于本发明是针对一组字符进行处理的,其中包含m个独立字符区域,根据每组内字符区域内黑点个数之间的相对关系和第一步长计算出翻转像素点数目的总和,而这个总和被平均分到单个字符区域内的翻转像素个数较少,因此本发明所述的方法及装置在具有良好的鲁棒性的同时,单个字符区域内部的翻转像素点的个数改变较小,从而具有很好的视觉效果。
由于本发明中每个分组内字符区域内黑点个数之间的相对关系可以有多种,而每种相对关系都可以隐藏一位的信息,每组字符的像素翻转可以隐藏多位不同的信息,因此整体嵌入的信息量比较大。
由于本发明具有良好地抗击浓度大小不一情况的鲁棒性,因此可以用于不同型号的打印机、复印机和扫描仪等数码设备,从而在数码印刷领域具有较好的通用性。
具体实施方式
本发明的构思在于,通过将文本图像中的字符区域按照一定数目进行分组、利用每个分组内的黑点个数之间的相对关系、通过选定的步长将水印信息嵌入到文本图像中,从而得到了一种数字水印的嵌入方法。下面结合附图对本发明的具体实施作出说明。
图1为数字水印嵌入方法的流程示意图,如图所示,在嵌入数字水印时包括以下步骤:
步骤101、定位文本图像中的字符区域,并确定有效字符区域。
该步骤中,文本图像中的字符区域是水印载体的基本单元,所以嵌入和提取成功的关键是看字符区域定位是否准确。而提取图像中文本的方法一般可以分为三类:1)基于文本区域空间频率特征的纹理方法;2)连通区域法;3)神经网络法。具体实施中所采用的文本定位的方法采取两个步骤:首先用多尺度图像分割方法把文本图像分割为一系列可能包含文本的图像块,然后用连通区域的方法确定每一个文本图像块中文本的精确位置和大小。具体实施中采用了由粗到精的策略对文本图像中的文本进行定位,不仅可能够确定水平和垂直排列文本的位置,也能确定按一定的倾角排列的文本。因此对于小角度旋转扫描误差的情况,依然可以正确定位图像的文本区域。
如图2所示,矩形区域即为文本图像中定位出的字符区域。
步骤102、将所有的有效字符区域进行分组,并分别统计各字符区域中的黑点个数。
该步骤中,有效字符中不包括黑点个数小于600的字符,例如标点符号或者被污染过的脏区域。因为这些字符本身的黑点数目就很少,经过翻转过后会对字符的视觉效果造成比较大的影响。经过筛选后的有效字符按照一定得顺序再进行分组。这里分组的顺序可以有多种方法,例如按照字符在版面中的从左到右、至上而下的自然顺序进行分组,或者先将黑点个数的范围进行分组,然后按照字符区域内黑点个数所属的范围进行分组等。为叙述方便,在本实施例采用字符在版面中的自然顺序进行分组。同时每个分组内的字符个数可以为任意大于零的偶数,例如2、4、8、16等。每个分组中字符个数越少,藏入的信息量就越多,但是视觉改变的效果越大,同时抵抗不同浓度打印和扫描的能力也越差;但是如果字符个数过大,嵌入的信息量会大幅度的下降。在本实施例中,采用16个字符为一组的分组粒度。
图3是字符个数为16的分组示意图。该分组中的字符区域即为矩形所包含的区域,接下来分别统计这16个区域中的黑点个数,记为∑i,其中i=1,2,3...16。
步骤103、根据各分组内的各字符区域内的黑点个数之间相对关系、水印信息位串、以及第一步长计算出每个字符区域内需要翻转的像素第一个数。
分别统计出m个字符区域所包含的黑点个数,并将m个字符区域平均为两部分,其中一部分黑点个数总数之和减去另外一部分黑点个数总数之和,即构成所述的字符区域内的黑点个数之间的相对关系,相应地,平分方法的不同可以构成不同的相对关系表达式。
该步骤中,首先定义分组内的各字符区域内的黑点个数之间的相对关系。目的就是针对分组所有字符区域内的黑点个数∑i,找到一种黑点个数总和的统计方法,该黑点个数不是单个字符区域内点黑点个数的简单相加,而是通过其他关系表达式来获得。在本实施例中,分组中16个字符区域内的黑点个数总和采用下面的方法:
∑=(∑1-∑2)+(∑3-∑4)+(∑5-∑6)+(∑7-∑8)+
(∑9-∑10)+(∑11-∑12)+(∑12-∑14)+(∑15-∑16)
接下来,在判断嵌入水印的0/1数据位时,实施例中采用步长奇偶法来给与说明,步长奇偶法是奇偶嵌入法的扩展。分组内的黑点个数总和∑相对于一定步长Q的倍数的奇偶性来表示0/1。这样使得算法具有一定的容错能力,经过水印攻击后像素点改变数最大不超过Q/2都可以被有效检测出来。打印扫描过程后得到的图像与原图像看似相同,实际上这个过程综合了多种图像处理过程,图像的像素值及几何位置发生了很大变换,需要水印算法具有很强的鲁棒性才能抵抗这种攻击。此时步长Q的选择变得尤为重要,如果步长过大,需要改变的像素点的个数势必增加,这样会对原文本图像的视觉效果造成很大影响;若步长过小,受打印扫描过程的影响,嵌入后的数据信息特别容易丢失。在本优选实施例中,选择步长为300,一般来说步长的选取不要超过∑的两倍。在本优选实施例中,根据常用字体的字符边界个数的大小,选择了一个较优的数值300来实施。
分组内的各字符区域内的黑点个数之间的相对关系可以有多种,“+”和“-”的顺序可以任意调整,比如本实施例中的相对关系可以改为:
∑=(∑16-∑1)+(∑15-∑2)+(∑14-∑3)+(∑13-∑4)
+(∑12-∑5)+(∑11-∑6)+(∑10-∑7)+(∑9-∑8),
但是必须保证“+”和“-”的个数要相同。对于一个分组的所有字符来讲,一个关系表达就代表了嵌入一个位的水印信息,所以通过增加基于这些字符区域内的黑点个数而构造出来的相对关系可以增加水印信息的嵌入量。确定了相对关系和黑点个数∑i就可以计算分组内的黑点个数总和∑,然后再根据待嵌入的水印信息位和步长Q,便可以计算出每个分组内的需要翻转的像素数总和∏,因此每个字符区域内应该翻转的像素数为∏/8。最后对于每一个括号内的两个字符来说,它们作相反的操作来实现∏/8个像素个数的翻转,亦即得到每个字符区域内部所需要翻转的黑点第一个数。
步骤104、按第一个数翻转每个字符区域内的像素。
每m个字符的组中的一部分黑点个数总数之和减去另外一部分黑点个数总数之和后所得的差值,必须根据第一步长的奇偶倍数的限制,进行一定数量像素点的翻转,所有需要翻转的像素点的总和除以m即为第一个数。
该步骤中,沿每个字符的轮廓连续地翻转一组像素,需要增加黑色点时沿轮廓方向遍历,翻转黑点八邻域内的白点为黑色,直到翻转了第一个数像素为止。对字符区域定位矩形上的白点不做翻转,这样避免了字符大小向外扩展,造成明显变粗,甚至在字符排列紧密时造成两个字符边界粘连,使得提取水印时字符区域定位错误。
需要减少黑点时,同样沿轮廓遍历,翻转轮廓黑点为白色,直到翻转第一个数像素为止。其中对上下左右均同色的黑点不作翻转,可以起到一定平滑视觉效果的作用。
为保证不可见性,优选实施例中可以优先考虑修改字符的内部轮廓,其次修改外部轮廓,在已知轮廓的情况下,认为作为独立连通区域的字符图像只有一个外部轮廓,只需要找到第二个轮廓起始点,开始遍历并修改像素点。若只有一个轮廓起始点,即只有外部轮廓,或者内部轮廓的所有点都被修改仍不能满足嵌入需要时,才从第一个轮廓起始点开始遍历。
重复上述步骤102至步骤104,嵌入全部的信息位串。
图4为大写的英文字符S中的黑点个数增加、减少和未翻转任何像素的三种情况比较示意图,如图所示,选择Arial字体,设置5号字体,对大写的英文字符S中的黑点个数增加、减少和未翻转任何像素的三种情况比较,其放大后的效果示意图分别为(a)、(b)和(c)所示。由图可以看出,变化前后的视觉平滑度比较理想,不仔细对比查看是不容易发现其中隐藏信息的。
图5为原始文本文档图像示意图;图6为针对图5的原始文本嵌入水印信息后的文本文档图像示意图。在本实施例中选择图5所示的文本文档图像为水印嵌入时的载体图像,遍历所有字符组成的连通区域后,在每个区域中嵌入相应的数据位后的效果示意图如图6所示。
基于以上构思,将数字水印嵌入的方法中的过程相逆,即通过对嵌入水印的文本图像中的黑点个数等将嵌入的水印信息提取,从而将文本图像还原的技术构思,本发明还可得到在黑白二值文本图像中提取数字水印的方法,下面结合附图来对提取方法的具体实施进行说明。
图7为提取嵌入水印信息的实施流程示意图,如图所示,在实施提取数字水印中包括以下步骤:
步骤701、将文本文档扫描后进行处理,定位版面图像中的字符区域,并确定有效字符区域。
将文本文档扫描后进行处理时,可以采用区域方法或边界方法或边缘方法来进行图像分割处理。然后再采用跟嵌入时同样的方法重新定位版面图像中的字符区域。
步骤702、将所有的有效字符区域进行分组,并分别统计各字符区域中的黑点个数。
同样采用跟嵌入相同的分组方法和字符区域内部的黑点个数统计方法。
步骤703、根据每个分组中的字符区域中的黑点个数之间的相对关系及第一步长提取出所嵌入的水印信息位串。
定义跟嵌入时相同的相对关系,并计算得到:
∑=(∑1-∑2)+(∑3-∑4)+(∑5-∑6)+(∑7-∑8)+
(∑9-∑10)+(∑11-∑12)+(∑12-∑14)+(∑15-∑16)
然后通过判断分组内的黑点个数总和∑相对于一定步长Q的倍数的奇偶性来计算提取后的水印信息位。
基于同一发明构思,本发明还提供了一种数字水印的嵌入装置,图8为数字水印嵌入装置的结构示意图,如图所示,嵌入装置在实施时可以包括:确定模块801、分组统计模块802、计算模块803、翻转模块804。其中:
确定模块801用于定位文本图像中的字符区域,并确定有效字符区域;然后分组统计模块802将有效字符区域进行分组,并统计各字符区域中的黑点个数;计算模块803则根据分组内的各字符区域内黑点个数之间的相对关系、水印信息位串、以及第一步长计算出每个字符区域内需要翻转的像素第一个数;最后翻转模块804按所述第一个数翻转每个字符区域内的像素。
各模块具体实施时可以采用如嵌入方法中描述的方式进行。
基于同一发明构思,本发明还提供了一种数字水印的提取装置,图9为数字水印提取装置的结构示意图,如图所示,提取装置在实施时可以包括:确定模块801、分组统计模块802、提取模块901。其中:
确定模块801用于定位文本图像中的字符区域,并确定有效字符区域;然后分组统计模块802将有效字符区域进行分组,并统计各字符区域中的黑点个数;最后提取模块901根据每个分组中的字符区域中黑点个数之间的相对关系及第一步长提取嵌入的水印信息位串。
各模块具体实施时可以采用如提取方法中描述的方式进行。
图10为对数字水印嵌入及提取的实施流程示意图,如图所示,该流程中,给出了水印嵌入及提取所使用的方法及装置的完整过程,用以进一步对本发明总构思的具体实施作出全面的说明,实施时包括以下步骤:
步骤1001、定位文本图像中的字符区域;
步骤1002、将有效的字符进行分组;
步骤1003、统计各字符区域中的黑点个数;
步骤1004、定义黑点个数之间的相对关系;
步骤1005、计算字符区域内的像素翻转个数;
步骤1006、翻转字符区域内的像素点;
步骤1007、获取加入水印后的图像;
步骤1008、定位文本图像中的字符区域;
步骤1009、统计字符区域内的黑点个数;
步骤1010、根据相对关系计算组内的黑点个数;
步骤1011、计算水印位信息。
在本发明中,不是考虑单个字符区域内绝对的像素个数,而是考虑了不同字符区域内的像素个数之间的相对关系,因此可以避免由于打印、扫描和复印过程中不同的浓度设置带来的单个字符区域内部像素绝对个数的变化,从而可以更好地抵抗打印、扫描和复印过程中的不确定因素攻击;
由于本发明中是针对一组字符进行处理的,其中包含m个独立字符区域,根据每组内字符区域内黑点个数之间的相对关系和第一步长计算出翻转像素点数目的总和,而这个总和被平均分到单个字符区域内的翻转像素个数较少,因此本发明所述的方法在具有良好的鲁棒性的同时,单个字符区域内部的翻转像素点的个数改变较小。从而具有很好的视觉效果;
由于本发明中每个分组内字符区域内黑点个数之间的相对关系可以有多种,而每种相对关系都可以隐藏一位的信息,每组字符的像素翻转可以隐藏多位不同的信息,因此整体嵌入的信息量比较大。
由于本发明具有良好地抗击浓度大小不一情况的鲁棒性,因此可以用于不同型号的打印机、复印机和扫描仪等数码设备,从而在数码印刷领域具有较好地通用性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。