专利名称:一种数字水印嵌入与提取的方法及装置的制作方法
技术领域:
本发明涉及一种数字水印嵌入与提取的方法及装置,特别涉及一种在黑白 二值文本图像中数字水印嵌入与提取的方法及装置。储狄随着计算机网络和多媒体系统的快速发展,数字媒体(数字音频、数字图 像、数字视频)被广泛应用,数字媒体的版权保护和完整性保护也成为一个亟 待解决的问题。而其中的文本文档不仅以数字格式存在电脑中,它还能通过打 印、扫描、复印等方法以纸张的形式传播。实际上许多纸张文档(如契约、票 据等)比那些音频、视频或者图像之类的多媒体更有价值。而随着计算机、打 印机和扫描仪等设备的应用和普及,使得拷贝和复制技术变得相对比较容易, 因而对重要文本文档的版权保护工作显得尤为迫切。数字水印技术是解决该问 题的有效方法之一。数字水印是将与数字媒体内容相关或不相关的一些标示信息直接嵌入到 数字媒体内容当中,但不影响原内容的信息,并不能被人的知觉系统觉察或注 意到。通过这些隐蔽在数字4某体内容中的信息,可以达到确认内容创建者、购 买者、内容是否真实完整以及其他设定目的。数字水印技术为版权鉴定提供了 一种有效的途径,它不但可以应用于图像、文本、音频、视频和三维图形等数 字产品的版权保护、内容鉴定和标识隐藏等,还可以应用于印刷品中。文本文档图像可以看作是二值的数字图像,与灰度图像具有丰富的灰度级 不同,二值图像只有黑白两种颜色的像素,这个特点决定了对像素的任意修改 都会造成视觉上的明显变化。例如在全黑或全白的区域翻转任意像素,在视觉 上造成的影响的都是不可接受的。对于二值图像来说,所能利用的视觉冗余都 是黑白区域的交接处,即图像的边界点。所以二值图像的水印方法都集中在对 边界点的修改,不能孤立考虑一个像素,而应该考虑像素点的领域状况。二值图像尤其是二值文本图像广泛应用在书籍和报刊中,由于经常要进行印刷处 理,所以水印抗打印扫描攻击的鲁棒性显得尤为重要。在现有的方法中,二值图像水印方法可以分为整体图像特征修改法和局部 图像特征修改法两类。其中整体图像特征修改法是利用大块图像或大块图像之 间的几何特征来隐藏信息,常见的方法包括文本行间距平移、文本字间距平移 和字符结构微调等方法。但是这种方法藏入的信息量较少,并且嵌入的方式比较复杂;局部图像特征修改法是对分块图像的统计特征进行修改来隐藏信息, 通常有奇偶嵌入法、步长奇偶法、比例修改法、游程修改法、边界修改法和字 符特征修改法等。它们的共同特征都是通过对边界像素的修改,改变局部图像 的统计特征,以达到信息隐藏的目的。但是目前的局部图像特征修改法的不足 在于只适用于数字图像中水印信息的嵌入和提取,抗打印扫描攻击的能力明 显不足。另外在选择像数点改变时还需要将某区域内的图像进行置乱处理,然 后分块统计黑点个数,并根据一定的规则和待嵌入的位串信息对图像的特定象 素点进行修改。但是对于一般的文本文档来说,排版格式的差异使得无法准确 定位区域,信息提取的困难较大。其中公开号为CN 1567353A专利文献中提出的方法就是上述局部图像特 征修改法中的一种,公开号为CN 1567353A的专利"一种在二值图像上嵌入 水印的方法,,,包括以下步骤a、对二值图像提取边缘;b、对边缘点进行 分析,计算出可修改像素的优先级;c、将二值图像置乱;d、对水印信号进 行巻积编码;e、在置乱的二值图像中嵌入水印图像。"一种提取水印的方法", 包括以下步骤a'、将嵌入水印的二值图像进行置乱并分块;b'、对每一子 块提取一位水印信息;c'、对水印矩阵进行Viterbi译码,得到要提取的水印。 但该专利方法同样对打印扫描过程不具备鲁棒性
发明内容
本发明提供一种数字水印嵌入与提取的方法及装置,用以解决现有技术中 存在的在二值文本图像中嵌入和提取数字水印方式不具备通用性的问题,进一 步的用于解决水印提取过程对打印扫描攻击鲁棒性不强的问题,还用于解决嵌 入水印后的图像视觉效果不佳的问题。本发明提供了一种数字水印的嵌入方法,包括如下步骤 获取待嵌入的水印信息位串;搜索由字符组成的封闭连通区域,获取所述连通区域的轮廓码链; 根据所述连通区域内的黑点个数、所述水印信息位串、以及第一步长计算 出需要翻转的像素第 一个数;沿所述轮廓码链按所述第 一个数翻转像素。较佳地,所述获取待嵌入的水印信息位串步骤中,对所述水印信息位串进 行加密处理。较佳地,所述搜索由字符组成的封闭连通区域,获取所述连通区域的轮廓 码链步骤,包括才艮据八邻域内颜色点的不同判断字符的边界点并标记;按第一顺序寻找第一个未被遍历过的边界点作为轮廓起始点,并记录进入 所述起始点的方向以及码链信息;才艮据上一步骤所述进入方向按第二顺序寻找下一个边界点作为轮廓点,并 记录进入所述轮廓点的方向以及码链信息直至回到起始点;根据记录的所有所述码链信息得到所述连通区域的轮廓码链。较佳地,所述第一步长是步长奇偶法或奇偶嵌入法的步长。较佳地,所述第一个数按下述计算公式得出 第一个数^+原黑点个数,其中 w = 0, m e (0,600) u (1700,+oo) w = w—600, w e [600,750) = Q—wO/^,附e(附i附o/oQ〉gx2/3,附/g二w,w2600,wS1700》w = Qx5/3-m%。,we{m|m%Q〉Qx2/3,m/0-w,w26OO,wSl7OO}w = gx2/3 —m%Q,me{/w|w%g〉gx2/3,w/^ = 2,w》600,m《1700} 上式中w为黑点个数,"为需要增加的点个数,当n大于O时,增加黑点的 个数,将白色像素翻转为黑色像素,当n小于O时,减少黑点的个数,将黑色 像素翻转为白色像素,w为待嵌入的水印信息位串,0为第一步长。较佳地,所述沿所述轮廓码链按所述第一个数翻转像素步骤中,对字符外 包矩形上的白点不做翻转。本发明还提供了一种数字水印的提取方法,包括如下步骤将文本文档扫描后进行处理得到单个字符图像区域;搜索由字符组成的封闭连通区域,获取所述连通区域的轮廓码链,统计所 述连通区域内的黑点个数;根据所述连通区域内的黑点个数以及第一步长提取出所述水印信息位串。较佳地,所述将文本文档扫描后进行处理步骤中,是将文本文档扫描后采 用区域方法或边界方法或边缘方法进行图像分割处理。较佳地,所述搜索由字符组成的封闭连通区域,获取所述连通区域的轮廓 码链,统计所述连通区域内的黑点个数步骤,包括根据八邻域内颜色点的不同判断字符的边界点并标记;按第一顺序寻找第一个未被遍历过的边界点作为轮廓起始点,并记录进入 所述起始点的方向以及码链信息;根据上一步骤所述进入方向按第二顺序寻找下一个边界点作为轮廓点,并 记录进入所述轮廓点的方向以及码链信息直至回到起始点;根据记录的所有所述码链信息得到所述连通区域的轮廓码链;统计所述连通区域内的黑点个数。
较佳地,所述根据所述连通区域内的黑点个数以及第 一步长提取出所述水印信息位串步骤中,所述水印信息位串按以下公式得出w = 0,me{m|[w/g+0.5〗% = 0,m2750,m《1700} w = l,we{w|[m/2+0.5]%2 = l,m》750,m^l700}其中,m为黑点个数,w为水印信息位串,g为第一步长。 较佳地,进一步包括如下步骤 对所述提取的水印信息位串进行解密处理。 本发明还进一步提供了一种数字水印的嵌入装置,包括 水印信息获取模块,用于获取待嵌入的水印信息位串; 轮廓码链获取^莫块,用于搜索由字符组成的封闭连通区域,获取所述连通 区域的轮廓码链;黑点个数统计模块,与所述轮廓码链获取模块相连,用于统计所述连通区 域内的黑点个数;第一个数计算才莫块,与所述水印信息获取模块、所述黑点个数统计模块相 连,用于根据所述黑点个数、所述水印信息位串、以及第一步长计算出需要翻 转的像素第一个数;像素翻转模块,与所述第一个数计算模块、所述轮廓码链获^^莫块相连, 用于沿所述轮廓码链按所述第一个数翻转像素。较佳地,进一步包括加密模块,与所述水印信息获取溪块相连,用于对所 述水印信息位串进行加密处理。较佳地,所述轮廓码链获取模块包括第一边界点标记单元,用于根据八邻域内颜色点的不同判断字符的边界点 并标记;第一码链遍历单元,用于根据所述第一边界点标记单元标记的边界点,按 笫一顺序寻找第一个未被遍历过的边界点作为轮廓起始点,并记录进入所述起 始点的方向以及码链信息,根据所述进入方向按第二顺序寻找下一个边界点作
为轮廓点,并记录进入所述轮廓点的方向以及码链信息直至回到起始点; 第一码链形成单元,用于根据所述第一码链遍历单元记录的所有所述码链信息得到所述连通区域的轮廓码链。较佳地,所述第一个数计算模块包括步长确定单元,用于根据步长奇偶法或奇偶嵌入法的步长确定第一步长; 个数计算单元,用于按下述计算公式得出所述第一个数,w = 0, m e (0,600) u (1700,+oo) w = w—600,we[600,750)w = Q—w%0,we{w|w%^>0x2/3,w/0 = w,w^:6OO,/MSl7OO}w = Qx5/3—/w%0,we{w|/n%0>gx2/3,m/(g-w,m26OO,/n^l7OO}w = /w%0,附e {w I m%0 >gx2/3,m/g = w,mS 600, w《1700}w = ^x2/3—wo/o0,we{w|w%G>^x2/3,/w/0 = 2,m》6OO,w《17OO}其中第一个数=11+原黑点个数,w为黑点个数,"为需要增加的点个数,当n大于0时,增加黑点的个数,将白色像素翻转为黑色像素,当n小于O时,减少黑点的个数,将黑色像素翻转为白色像素,w为待嵌入的水印信息位串,G为第一步长。本发明进一步的又提供了一种数字水印的提取装置,包括 图像分割处理才莫块用于将文本文档扫描后进行处理得到单个字符图像区域;字符黑点个数统计模块与所述图像分割处理模块相连,用于搜索由字符 组成的封闭连通区域,获取所迷连通区域的轮廓码链,统计所述连通区域内的 黑点个数;水印信息提取^^莫块与所述字符黑点个数统计才莫块相连,用于根据所述连 通区域内的黑点个数以及第 一步长提取出所述水印信息位串。 较佳地,所述字符黑点个数统计模块包括第二边界点标记单元,用于根据八邻域内颜色点的不同判断字符的边界点 并标记;
第二码链遍历单元,用于根据所述第二边界点标记单元标记的边界点,按 第一顺序寻找第一个未净皮遍历过的边界点作为轮廓起始点,并记录进入所述起 始点的方向以及码链信息,根据所述进入方向按第二顺序寻找下一个边界点作为轮廓点,并记录进入所述轮廓点的方向以及码链信息直至回到起始点; 第二码链形成单元,用于根据所述第二码链遍历单元记录的所有所述码链信息得到所述连通区域的轮廓码链;黑点个数统计单元,用于统计所述连通区域内的黑点个数。较佳地,所述水印提取模块按以下公式提取水印信息位串w=0,we{w|[/w/g+0.5]% = 0,w2750,m^l700} w=l,mG{m|[/w/2+0.5]o/o2 = l,m2750,m^l700}其中,附为黑点个数,w为水印信息位串,^为第一步长。 较佳地,进一步包括解密模块,与水印提^^莫块相连,用于对所述提取的 水印信息位串进行解密处理。 本发明有益效果如下由于本发明是根据连通区域进行黑点个数的变化来进行翻转从而达到数 字水印嵌入的目的,而文本都具有连通区域,因此本发明对一般的二值文本图 像具有通用性,可以应用在包含英文、数字符号、汉字以及日文等任何字符集 的文本文档;由于本发明是通过步长与增加黑点个数的关系来控制嵌入的,因此本发明 对打印扫描过程具有纟艮强的鲁棒性,能够应用于传统印刷以及打印扫描的文本文档;与现有技术相比,本发明的嵌入和提取过程更加简洁,不需要事先分块和 置乱处理,并且不依赖于文本文档内容的排版格式,不仅提高了运算效率,而 且对于打印扫描攻击的影响,也可以方便地进行跟踪;由于本发明只与文本文档中的字符所占的面积大小有关,因此使得抗打印 扫描过程中平移、旋转等几何攻击的能力也得到增强; 由于本发明中可以对嵌入的信息作各种处理,比如压缩、加密、加校验位 等,所以本发明不仅使得嵌入的信息灵活、而且嵌入的信息量较大、便于实现各种保密措施,同时提取的精确度较已有的方法有大幅度提高。
图1为本发明数字水印嵌入方法的主流程图; 图2为本发明获得连通区域封闭轮廓码链的流程图; 图3为大写的英文字符S嵌入水印信息0、 1和未嵌入任何信息的三种情 况比较示意图;图4是原始文本文档图像示意图;图5是针对图4的原始文本嵌入水印信息后的文本文档图像示意图;图6为提取按照本发明方法嵌入水印信息的流程图;图7是本发明水印嵌入装置的结构示意图;图8是本发明提取水印信息的装置结构示意图;图9为本发明的一个具体实施例的水印嵌入及提取的流程示意图。
具体实施方式
本发明的构思在于,通过获取封闭连通区域的轮廓码链后,利用连通区域 内的黑点个数、通过选定的步长将水印信息嵌入文本图像中,从而得到了一种 数字水印的嵌入方法。下面结合附图对本发明的具体实施作出说明。如图l所示,是本发明数字水印嵌入方案的主流程图,包括以下步骤 S101、获取待嵌入的水印信息位串,并对水印信息进行预处理; 该步骤中,首先获取需要嵌入的水印信息位串,该信息可以为数字图像、 文本、音频和视频等任何可以数字化的数据。采用压缩算法对水印信息位串进 行压缩处理,以增大嵌入的信息量,实施例中此处采用通用的LZW压缩算法 以作说明,但不限于仅用LZW压缩算法;为了安全性考虑,在优选实施中还
可以对压缩后的水印信息位串进行加密处理;在加密后的暗文字串后面插入必 要的数据正确性校验数据位,以便提取信息时进行数据正确性验证,从而提高 信息提取的准确度。S102、依次搜索版面中由字符组成的封闭连通区域,并提取字符轮廓信息, 获得字符连通区域的封闭轮廓码链;该步骤中对每个连通区域内的字符图像,寻找字符的连续封闭轮廓,用一 串码链表示。码链记录了轮廓点的位置、相对上一个轮廓点的方向,以及连通 性标志。寻找连续封闭轮廓的方法如下首先对所获得的字符点阵分配一个标志域,并标识每个〗象素点是否为字符 图像的边界点,具体过程为选择一个黑色像素点为中心,判断其周围八邻域 内是否有白色像素点存在,如果存在,则标记为1;否则标记为0。这里l表 示该像素点为字符图像的边界点,0则表示不是边界点。遍历字符轮廓的方法分为下面两个步骤。第一步、寻找遍历轮廓的起始点,按第一顺序扫描字符点阵,具体实施中 我们定第一顺序为从上到下、从左到右,找到第一个未被遍历过的边界点,作 为轮廓起始点,并记录进入该点的进入方向,具体实施中我们假定所述进入方 向为从左到右。第二步、以上一个进入方向为基准,按第二顺序不断寻找到下一个需要遍 历的轮廓点,具体实施中我们定第二顺序按"最先左看"的原则执行,即以进 入该轮廓点的方向为基准,按左、上、右、下的顺时针顺序试探当前轮廓点的 邻接点,如果该邻接点是边界点则作为下一个轮廓点,并记录进入该点的方向, 否则继续试探。如果回到轮廓的起始点,则表明一个封闭轮廓遍历完毕。重复上面两个步骤,并在遍历的同时记录码链信息,便可以得到字符所有 封闭轮廓的码链。其中,第一顺序与第二顺序的设置目的是使得遍历时顺次得到每一个边界
点的信息,从而保证得到的轮廓码链是完整的。基于这个原理,第一顺序显然也可采用为从下到上、再从右到左等等顺序;而第二顺序当然也可按"最先上、 或右、或下看"的原则执行。图2是获得连通区域封闭轮廓码链的流程图。如图所示,获得轮廓码链的 方法包括如下步骤5201、 首先获取需要进行数字水印嵌入的字符图像;5202、 定位图像中字符的外包矩形;具体的定位方法如下首先将各字符图像区域内的黑点个数向水平方向投 影,根据黑点分布的左右边界起始位置确定各字符图像区域的外接矩形的左边 界和右边界;然后再将字符图像区域的黑点个数向竖直方向投影,并根据黑点 分布的上下边界起始位置确定各字符图像区域的外接矩形的上边界和下边界, 从而得到完整的外接矩形区域。5203、 标记所有的边界点;5204、 扫描是否能获得未被遍历的边界点,若没有转到S212,若有转到 S205;5205、 标记该点为轮廊起始点,并设为当前点,同时设定进入该点的方向 为从左到右;5206、 以进入该点的方向为准按当前点的左上右下的顺序依次试探当前点 各方向上的点位;5207、 判断下一遍历点是否为边界点,若否则转入S206,若是则转入S208;5208、 设置下一遍历点为当前点;5209、 记录进入当前点的方向,并标记当前点已经遍历过;5210、 记录当前点的码链信息;5211、 判断当前点是否为轮廓起始点,若否则转入S206,若是则转入S204;5212、 根据所记录的每一点的码链信息获得轮廓码链。每一个点的码链信 息串起来后就成了完整的 一个封闭连通区域的"轮廓码链"。S103、计算该连通区域内的黑点个数,并根据选定的步长判断该连通区域 可否用于嵌入水印信息,并计算出需要翻转的象素个数;由于外包矩形实际上是单个字符图像区域中包含全部黑色像素点的最小 的外接矩形区域。因此在搜索字符图像的轮廓边界前,首先要定位出该字符图 像大致的矩形区域,然后统计该区域中所有的黑点个数,即可得到该连通区域 内的黑点个数。在判断嵌入水印的0/1数据位时,实施例中我们采用步长奇偶法来给与说明,步长奇偶法是奇偶嵌入法的扩展。用封闭连通区域内的黑色4象素点个数相对于一定步长^的倍数的奇偶性来表示0/1。这样使得算法具有一定的容错能 力,经过水印攻击后像素点改变数最大不超过g/2都可以被有效检测出来。打 印扫描过程后得到的图像与原图像看似相同,实际上这个过程综合了多种图像 处理过程,图像的像素值及几何位置发生了很大变换,需要水印算法具有很强的鲁棒性才能抵抗这种攻击。此时步长^的选择变得尤为重要,如果步长过大, 需要改变的像素点的个数势必增加,这样会对原文本图像的视觉效果造成很大 影响;若步长过小,受打印扫描过程的影响,嵌入后的数据信息特别容易丢失。 在本优选实施例中,选择步长为200, 一般来说步长的选取不要超过字符图像 的边界像素点的个数的两倍。在本实施例中,根据常用字体的字符边界个数的 大小,选择了一个较优的数值200来实施。同时,对于黑点数小于750的存在 以下几种情况(a) 存在两个连通区域,比如i和j;(b) 对其进行轮廓点翻转后会引起较大视觉影响的,比如大写的英文字母I;(c) 可以翻转的轮廓点个数不足200,比如r, t。 这些特性决定了黑点数小于750的这类字符不能嵌入信息。 对于黑点数大于1700的字符,比如五号Arial字体下的W和M,由于打印扫描后其黑点变换的平均值接近或超过100, 200的步长已无法满足其抗打
印扫描处理的鲁棒性,所以也不作为可嵌入信息的字符。为与嵌入信息的字符相区别,将黑点数大于600,且小于750的字符黑点 数减到600以下,防止没有嵌入水印的字符被误判为嵌入了水印的字符,信息 提取时发生错位,造成信息提取严重失真。为改进该方法的鲁棒性和水印信息的不可见性,对于需增加"个黑点到步长的w倍的情况,可以只增加到wx^—^/3个黑点,由于打印扫描处理后黑点数增加,黑点的个数仍在w倍步长土^/2的识别范围之内。对于黑点数在 wxg-^/3到/nx^之间的字符,若减少像素到(m-l)xQ则像素变换个数太多,造成较大的视觉影响,同时打印扫描处理后只要增加像素点超过^/2便会造成 误识别,鲁棒性不高。采用增加像素点到(附+ 2)x^—^/3的方法,可以使正确 识别的范围扩大到Q/2+Q/3 ,增强了鲁棒性。综上所述,步长^设为200,字符像素点需要翻转个数的计算公式为w = 0, m e (0,600) u (1700,+oo) w = w-600, we [600,750)w = g—m%g,we{/w|w%Q>0x2/3,w/0 = w,w》6OO,w^l7OO}w = jgx5/3—w%0,/we{w|w%g>2x2/3,w/g*w,m26OO,w^l7OO}w = m%g,m e { 21 m%g > Qx2/3,/w/Q = w,m 2 600,m Si 700}w = gx2/3—wo/o2,we{ i|w%g>gx2/3,》j/g = 2,w》600,w《1700}其中附为黑点个数;"为需要增加的点个数,当n大于O时,则表示需 要增加黑点的个数,即需要将部分白色像素翻转为黑色像素,当n小于O时, 则表示减少黑点的个数,即需要将部分黑色像素翻转为白色像素;w为待嵌入 的水印信息位。S104、沿轮廓码链连续的翻转像素,直到达到指定个数,从而嵌入一位信息;利用所得轮廓码链可以连续地翻转一组像素,需要增加黑色点时沿轮廓码 链方向遍历,翻转黑点八邻域内的白点为黑色,直到翻转了"个《象素为止。对
字符外包矩形上的白点不做翻转,这样避免了字符大小向外扩展,造成明显变 粗,甚至在字符排列紧密时造成两个字符边界粘连,使得提取水印时误判连通 区域的范围。需要减少黑点时,同样沿轮廓码链方向遍历,翻转轮廓黑点为白色,直到 翻转"个像素为止。其中对上下左右均同色的黑点不作翻转,可以起到一定平 滑视觉效果的作用。为保证不可见性,优选实施例中可以优先考虑修改字符的内部轮廓,其次 修改外部轮廓,在已知轮廓码链的情况下,认为作为独立连通区域的字符图像 只有一个外部轮廓,只需要找到第二个轮廓起始点,开始遍历并修改像素点。 若只有一个轮廓起始点,即只有外部轮廓,或者内部轮廓的所有点都被修改仍 不能满足嵌入需要时,才从第一个轮廓起始点开始遍历。重复上述S102至S104,嵌入全部的信息位串。如图3所示,选择Arial字体,设置5号字体,大写英文字母"S"嵌入水 印信息位0、 1以及不嵌任何信息,其放大后的效果示意图分别为(a)、 (b) 和(c)所示。由图可以看出,变化前后的视觉平滑度比较理想,不仔细对比 查看是不容易发现其中隐藏信息的。在本实施例中选择图4所示的文本文档图像为水印嵌入时的载体图像,遍 历所有字符组成的连通区域后,在每个区域中嵌入相应的数据位后的效果示意 图如图5所示。基于以上构思,将数字水印嵌入的方法中的过程相逆,即通过对嵌入水印 的文本图像中的黑点个数等将嵌入的水印信息提取,从而将文本图像还原的技 术构思,本发明还可得到在二值文本图像中提取数字水印的方法,下面结合附 图来对提取方法的具体实施作出说明。图6是提取按照上述方法嵌入水印信息 的流程图,从图中可见,包括以下步骤S601、扫描文本文档得到灰度数字图象,并进行图像分割处理; 扫描打印后的文本图像获取电子化后的数字图像数据,由前所述的水印信
息嵌入方法,需要统计连通区域内的黑点个数,所以提取水印信息前需要进行 数字图像的图像分割处理,得到单个字符图像区域。将文本文档扫描后进行处 理中,可以采用区域方法或边界方法或边缘方法来进行处理。由于采用步长奇偶法嵌入水印,字符图像经过打印扫描处理后黑点个数的 统计值是决定水印能否正确提取的决定因素,由于打印扫描过程中的不确定因 素,如果采用固定的阈值对图像字符进行分割,那么就会造成字符图像的边界 像素严重失真。因此必须采用阈值化算法动态地确定合适的阈值,尽量准确分 割字符图像的边界,才能保证水印提取的正确率。在本实施例中,对水印进行提取时,使用区域方法中有代表性的阈值化图 像分割处理方法,先对扫描后的灰度图像进行大津法阈值化处理,恢复成二值 图像。5602、 依次搜索版面中由字符组成的封闭连通区域,并计算区域内所有的 黑点个数;遍历图像时,需要先检测出字符图像区域的边缘轮廓,然后统计封闭轮廓 区域内的所有黑点个数,其中边缘轮廓检测的方法跟嵌入过程相同。5603、 根据嵌入规则和每个区域内的黑点个数提取每个区域内嵌入的水印 数据位;<formula>formula see original document page 20</formula>所有的信息位提取结束后,可以根据嵌入时的加密信息进行解密,具体实 施中可以用以下方式来实现。根据原始的水印信息位串结构,取出相应的校验 数据进行信息串的正确性- 。校验通过后的数据再进行最后的解密和解压缩 过程,从而还原原始的水印串信息。基于以上发明构思,本发明还提供了数字水印嵌入与提取的装置,下面结
合附图对所述装置的具体实施作出说明。图7是本发明水印嵌入装置的结构示意图,如图所示,在数字水印嵌入装 置中包括水印信息获取模块701、轮廓码链获私漢块702、黑点个数统计才莫块 703、第一个数计算模块704、像素翻转模块705、加密模块706,它们的结构 关系是第一个数计算模块704分别与水印信息获取模块701、黑点个数统计模块 703相连,黑点个数统计模块703还与轮廓码链获取模块702相连,像素翻转 模块705分别与轮廓码链获取模块702、第一个数计算模块704相连,优选中 水印信息获取模块701还与加密模块706相连。下面再对这些模块各自所起的作用以及相互之间工作关系说明如下水印信息获取才莫块获取待嵌入的水印信息位串,信息位串是笫一个数计算 模块计算的一个依据;轮廓码链获取模块搜索由字符组成的封闭连通区域,获取连通区域的轮廓 码链,黑点个数统计模块将根据轮廓码链计算出第一个数计算所需的黑点个 数,同时像素翻转模块也是沿轮廓码链进行翻转的;黑点个数统计模块根据轮廓码链模块得到的连通区域,统计连通区域内的 黑点个数;第一个数计算模块根据水印信息获取漢块、黑点个数统计模块得到的黑点 个数、水印信息位串、再结合第一步长计算出需要翻转的像素第一个数;像素翻转模块在沿所述轮廓码链按第一个数翻转像素。像素翻转模块利用 所得轮廓码链可以连续地翻转一组像素,需要增加黑色点时沿轮廓码链方向遍 历,翻转黑点八邻域内的白点为黑色,直到翻转了"个像素为止。对字符外包 矩形上的白点不做翻转,这样避免了字符大小向外扩展,造成明显变粗,甚至 在字符排列紧密时造成两个字符边界粘连,使得提取水印时误判连通区域的范 围。需要减少黑点时,同样沿轮廓码链方向遍历,翻转轮廓黑点为白色,直到 翻转"个像素为止。其中对上下左右均同色的黑点不作翻转,可以起到一定平
滑-现觉效果的作用。加密模块,用于对所述水印信息位串进行加密处理,加密模块是为了安全性考虑,它可以对压缩后的水印信息位串进4亍加密处理;在加密后的暗文字串 后面插入必要的数据正确性校验数据位,以便提取信息时进行数据正确性验 证,从而提高信息提取的准确度。优选中轮廓码链获取模块702可以包括第一边界点标记单元7021、第一码 链遍历单元7022 、第 一码链形成单元7023 。第一边界点标记单元,才艮据八邻域内颜色点的不同判断字符的边界点并标 记;第一码链遍历单元,根据第一边界点标记单元标记的边界点,按第一顺序 寻找第一个未被遍历过的边界点作为轮廓起始点,并记录进入所述起始点的方 向以及码链信息,根据进入方向按第二顺序寻找下一个边界点作为轮廓点,并 记录进入轮廓点的方向以及码链信息直至回到起始点;第一码链形成单元,根 据第一码链遍历单元记录的所有码链信息得到连通区域的轮廊码链。在实施中,第一顺序与第二顺序的设置目的是使得遍历时顺次得到每一个 边界点的信息,从而保证得到的轮廓码链是完整的。基于这个原理,第一顺序 显然也可采用为从下到上、再从右到左等等顺序;而第二顺序当然也可按"最 先上、或右、或下看"的原则执行。在优选实施例中,第一个数计算模块704可以包括步长确定单元、个数计 算单元。具体实施中,步长确定单元可以根据步长奇偶法或奇偶嵌入法的步长确定 第一步长。下面我们采用步长奇偶法来给与说明,步长奇偶法是奇偶嵌入法的扩展。用封闭连通区域内的黑色像素点个数相对于一定步长^的倍数的奇偶性 来表示0/1。这样使得算法具有一定的容错能力,经过水印攻击后像素点改变 数最大不超过g/2都可以被有效检测出来。打印扫描过程后得到的图像与原图 像看似相同,实际上这个过程综合了多种图像处理过程,图像的像素值及几何 位置发生了很大变换,需要水印算法具有很强的鲁棒性才能抵抗这种攻击。此
时步长2的选择变得尤为重要,如果步长过大,需要改变的像素点的个数势必增加,这样会对原文本图像的视觉效果造成很大影响;若步长过小,受打印扫 描过程的影响,嵌入后的数据信息特别容易丢失。在本优选实施例中,选择步长为200, 一般来说步长的选取不要超过字符图像的边界像素点的个数的两倍。 在本实施例中,根据常用字体的字符边界个数的大小,选择了一个较优的数值 200来实施。个数计算单元则按下述计算公式得出所述第一个数,其中<formula>formula see original document page 23</formula>第一个数巧+原黑点个数,w为黑点个数,"为需要增加的点个数,当n大于0时,增加黑点的个数,将白色像素翻转为黑色像素,当n小于0时,减少黑点的个数,将黑色像素翻转为白色像素,w为待嵌入的水印信息位串,0为第一步长。下面我们对优选中所选用的^^式进行说明。 由于对于黑点数小于750的存在以下几种情况(a) 存在两个连通区域,比如i和j;(b) 对其进行轮廓点翻转后会引起较大视觉影响的,比如大写的英文字母I;(c) 可以翻转的轮廓点个数不足200,比如r, t。 这些特性决定了黑点数小于750的这类字符不能嵌入信息。 对于黑点数大于1700的字符,比如五号Arial字体下的W和M,由于打印扫描后其黑点变换的平均值接近或超过100, 200的步长已无法满足其抗打 印扫描处理的鲁;^奉性,所以也不作为可嵌入信息的字符。
为与嵌入信息的字符相区别,将黑点数大于600,且小于750的字符黑点 数减到600以下,防止没有嵌入水印的字符被误判为嵌入了水印的字符,信息 提取时发生错位,造成信息提取严重失真。为改进该方法的鲁棒性和水印信息的不可见性,对于需增加"个黑点到步长的w倍的情况,可以只增加到附x^—2/3个黑点,由于打印扫描处理后黑点 数增加,黑点的个数仍在w倍步长士^/2的识别范围之内。对于黑点数在 wx^-Q/3到mxg之间的字符,若减少像素到(m-l)x0则像素变换个数太多,造成较大的视觉影响,同时打印扫描处理后只要增加像素点超过^/2便会造成 误识别,鲁棒性不高。采用增加像素点到(附+2)x2-Q/3的方法,可以使正确识别的范围扩大到^/2+^/3,增强了鲁棒性。综上所述,在优选实施中,我们将第一步长^设为200,字符像素点需要翻转个数的计算公式为<formula>formula see original document page 24</formula>其中w为黑点个数;"为需要增加的点个数,当n大于O时,则表示需 要增加黑点的个数,即需要将部分白色像素翻转为黑色像素,当n小于O时, 则表示减少黑点的个数,即需要将部分黑色像素翻转为白色像素;w为待嵌入 的水印信息位。如果我们将数字水印嵌入的方法中的过程相逆,即通过对嵌入水印的文本 图像中的黑点个数等将嵌入的水印信息提取,从而就能将文本图像还原,基于 上述构思,本发明还可得到在二值文本图像中提取数字水印的装置,下面我们 结合附图来对提取装置的具体实施作出说明。图8是本发明提取水印信息的装 置结构示意图,如图所示,在数字水印提取装置中包括图像分割处理模块801、 字符黑点个数统计模块802、水印信息提取模块803、解密模块804,其中它们 的结构关系是依次相连的,优选中解密模块804还与水印提取模块803相连。 下面对它们所完成的功能及关系及体实施进行说明如下图像分割处理才莫块将文本文档扫描后进行处理得到单个字符图像区域。 在扫描打印后的文本图像获取电子化后的数字图像数据后,根据由前所述 的水印信息嵌入的原理,需要统计连通区域内的黑点个数,所以提取水印信息 前需要进行数字图像的图像分割处理,得到单个字符图像区域。将文本文档扫 描后进行处理中,具体实施时可以采用区域方法或边界方法或边缘方法来进行 处理。由于采用步长奇偶法嵌入水印,字符图像经过打印扫描处理后黑点个数的 统计值是决定水印能否正确提取的决定因素,由于打印扫描过程中的不确定因 素,如果采用固定的阈值对图像字符进行分割,那么就会造成字符图像的边界 像素严重失真。因此优选实施中应该采用阈值化算法动态地确定合适的阈值, 尽量准确分割字符图像的边界,才能保证水印提取的正确率。在本实施例中,对水印进行提取时,可以使用区域方法中有代表性的阈值 化图像分割处理方法,先对扫描后的灰度图像进行大津法阈值化处理,恢复成 二值图像。字符黑点个数统计模块用于搜索由字符组成的封闭连通区域,获取所述连 通区域的轮廓码链,统计所述连通区域内的黑点个数。遍历图像时,需要先检 测出字符图像区域的边缘轮廓,然后统计封闭轮廓区域内的所有黑点个数,其 中边缘轮廓检测的方法跟嵌入过程相同。优选中字符黑点个数统计模块802可以包括第二边界点标记单元8021 、第 二码链遍历单元8022、第二码链形成单元8023、黑点个数统计单元8024。笫二边界点标记单元,根据八邻域内颜色点的不同判断字符的边界点并标记;
第二码Mi4历单元,根据第二边界点标记单元标记的边界点,按第一顺序 寻找第 一个未被遍历过的边界点作为轮廓起始点,并记录进入起始点的方向以 及码链信息,根据进入方向按第二顺序寻找下一个边界点作为轮廓点,并记录 进入轮廓点的方向以及码链信息直至回到起始点;第二码链形成单元,根据第二码链遍历单元记录的所有码链信息得到连通 区域的轮廓码链。其中第二边界点标记单元8021、第二码链遍历单元8022、第二码链形成 单元8023可以4艮据嵌入水印时使用相同的原理来形成轮廓码链。黑点个数统计单元根据轮廓码链来统计连通区域内的黑点个数。水印信息提取模块是根据连通区域内的黑点个数以及第 一步长提取出所 述水印信息位串。优选中,水印提取模块可以按以下公式提取水印信息位串w=0,we{/w|[w/g+0.5]% = 0,m2750,w^l700} w = l,we{w|[w/2+0.5]0/o2 = l,m》750,m^l700}其中,w为黑点个数,w为水印信息位串,G为第一步长。 优选实施中还可以包括解密模块,与水印提取模块相连,用于对提取的水 印信息位串进行解密处理。解密模块是在所有的信息位提取结束后,根据嵌入 时的加密信息进行解密,具体实施中可以用以下方式来实现。根据原始的水印 信息位串结构,取出相应的校验数据进行信息串的正确性验证。校验通过后的 数据再进行最后的解密和解压缩过程,从而还原原始的水印串信息。如图9所示,是本发明的一个具体实施例的流程示意图,该流程图中,我 们给出了水印嵌入及提取所使用的方法以及装置具体实施本发明的完整过程, 用以进一步对本发明总构思的具体实施作出全面的说明,从图中可见,包括以 下步骤5901、 在原始图像中,定位原始图像连通区域;5902、 获取原始图像的轮廓编码;S903、统计-像素点个数;S904、在水印中加入冗余信息后,应用前述公式翻转像素个数;S905、沿轮廓翻转像素;S906、根据上述步骤获取加入水印图像;S卯7、对加入水印图像进行阈值化处理;S908、定位连通区域;S909、统计像素点个数;S910、应用公式计算水印位;S911、提取水印。在本发明构思中,是根据连通区域进行黑点个数的变化来进行翻转从而达 到数字水印嵌入的目的,而文本都具有连通区域,因此本方法及装置对一般的 二值文本图像具有通用性,可以应用在包含英文、数字符号、汉字以及日文等 任何字符集的文本文档。由于本发明构思中是通过步长与增加黑点个数的关系来控制嵌入的,因此 本发明所述的方法及装置对打印扫描过程具有很强的鲁棒性,能够应用于传统 印刷以及打印扫描的文本文档。与现有技术相比,本发明所述方法及装置的嵌入和提取过程更加简洁,不 需要事先分块和置乱处理,并且不依赖于文本文档内容的排版格式,不仅提高 了运算效率,而且对于打印扫描攻击的影响,也可以方便地进行跟踪。由于本发明所述方法及装置只与文本文档中的字符所占的面积大小有关, 因此使得(同时)抗打印扫描过程中平移、旋转等几何攻击的能力也得到增强。由于本发明中可以对嵌入的信息作各种处理,比如压缩、加密、加校验位 等,所以本发明所述方法及装置不仅使得嵌入的信息灵活、而且嵌入的信息量 较大、便于实现各种保密措施,同时提取的精确度较已有的方法有大幅度提高。
权利要求
1、一种数字水印的嵌入方法,其特征在于,包括如下步骤获取待嵌入的水印信息位串;搜索由字符组成的封闭连通区域,获取所述连通区域的轮廓码链;根据所述连通区域内的黑点个数、所述水印信息位串、以及第一步长计算出需要翻转的像素第一个数;沿所述轮廓码链按所述第一个数翻转像素。
2、 如权利要求1所述的方法,其特征在于,所述获取待嵌入的水印信息 位串步骤中,对所述水印信息位串进行加密处理。
3、 如权利要求1所述的方法,其特征在于,所述搜索由字符组成的封闭 连通区域,获取所述连通区域的轮廓码链步骤,包括才艮据八邻域内颜色点的不同判断字符的边界点并标记;按第一顺序寻找第一个未被遍历过的边界点作为轮廓起始点,并记录进入 所述起始点的方向以及码链信息;根据上一步骤所述进入方向按第二顺序寻找下一个边界点作为轮廓点,并 记录进入所述轮廓点的方向以及码链信息直至回到起始点;根据记录的所有所述码链信息得到所述连通区域的轮廓码链。
4、 如权利要求1所述的方法,其特征在于,所述第一步长是步长奇偶法 或奇偶嵌入法的步长。
5、 如权利要求1所述的方法,其特征在于,所述第一个数按下述计算公 式得出笫一个数=11+原黑点个数,其中 w = 0, w e (0,600) u (1700,+oo) w = w—600,附e [600,750)w =m%g,we{m|wo/o2〉gx2/3,/w/g = w,m2600,》^1700} 'w = gx5/3 —w%g,we{/w|w%0>gx2/3,Aw/g#w,w26OO,m^l7OO} w = w%Q,we{w|m%Q>gx2/3,w/0 = w,m^6OO,w:^17OO} w=0x2/3-w%^,me{w|wo/c^>0<2/3,m/0 = 2,/ 26OO,w^l7OO}上式中附为黑点个数,"为需要增加的点个数,当n大于0时,增加黑点的 个数,将白色像素翻转为黑色像素,当n小于0时,减少黑点的个数,将黑色 像素翻转为白色像素,w为待嵌入的水印信息位串,g为第一步长。
6、 如权利要求1所述的方法,其特征在于,所述沿所述轮廊码链按所述 第一个数翻转像素步骤中,对字符外包矩形上的白点不做翻转。
7、 一种数字水印的提取方法,其特征在于,包括如下步骤 将文本文档扫描后进行处理得到单个字符图像区域; 搜索由字符组成的封闭连通区域,获取所述连通区域的轮廓码链,统计所述连通区域内的黑点个数;根据所述连通区域内的黑点个数以及第一步长提取出所述水印信息位串。
8、 如权利要求7所述的方法,其特征在于,所述将文本文档扫描后进行 处理步骤中,是将文本文档扫描后采用区域方法或边界方法或边缘方法进行图 像分割处理。
9、 如权利要求7所述的方法,其特征在于,所述搜索由字符组成的封闭 连通区域,获取所述连通区域的轮廓码链,统计所述连通区域内的黑点个数步 骤,包括根据八邻域内颜色点的不同判断字符的边界点并标记;按第 一顺序寻找第 一个未被遍历过的边界点作为轮廓起始点,并记录进入 所述起始点的方向以及码链信息;根据上一步骤所述进入方向按第二顺序寻找下一个边界点作为轮廓点,并 记录进入所述轮廓点的方向以及码链信息直至回到起始点; 根据记录的所有所述码链信息得到所述连通区域的轮廓码链; 统计所述连通区域内的黑点个数。
10、 如权利要求7所述的方法,其特征在于,所述根据所述连通区域内的 黑点个数以及第一步长提取出所述水印信息位串步骤中,所述水印信息位串按以下公式得出w=0,me{w|[w/g+0.5〗% = 0,w^750,m^l700} w=l,mG{w|[w/Q+0.5]o/o2 = l,m》750,w《1700}其中,w为黑点个数,w为水印信息位串,^为第一步长。
11、 如权利要求7所述的方法,其特征在于,进一步包括如下步骤 对所述提取的水印信息位串进行解密处理。
12、 一种数字水印的嵌入装置,其特征在于,包括 水印信息获^f莫块,用于获取待嵌入的水印信息位串; 轮廓码链获^^莫块,用于搜索由字符组成的封闭连通区域,获取所述连通区域的轮廓码链;黑点个数统计才莫块,与所述轮廓码链获取才莫块相连,用于统计所述连通区 域内的黑点个数;第一个数计算才莫块,与所述水印信息获取才莫块、所述黑点个数统计模块相 连,用于根据所述黑点个数、所述水印信息位串、以及第一步长计算出需要翻 转的像素第一个数;像素翻转模块,与所述第一个数计算模块、所述轮廓码链获取模块相连, 用于沿所述轮廓码链按所述第一个数翻转像素。
13、 如权利要求12所述的装置,其特征在于,进一步包括加密模块,与 所述水印信息获取溪块相连,用于对所述水印信息位串进^f亍加密处理。
14、 如权利要求12所述的装置,其特征在于,所述轮廓码链获取模块包括第 一边界点标记单元,用于根据八邻域内颜色点的不同判断字符的边界点 并标记;笫一码链遍历单元,用于根据所述第一边界点标记单元标记的边界点,按 第一顺序寻找第一个未被遍历过的边界点作为轮廓起始点,并记录进入所述起 始点的方向以及码链信息,根据所述进入方向按第二顺序寻找下一个边界点作 为轮廓点,并记录进入所述轮廓点的方向以及码链信息直至回到起始点;第一码链形成单元,用于根据所述码链遍历单元记录的所有所述码链信息 得到所述连通区域的轮廓码链。
15、 如权利要求12所述的装置,其特征在于,所述第一个数计算模块包括步长确定单元,用于根据步长奇偶法或奇偶嵌入法的步长确定第一步长; 个数计算单元,用于按下述计算公式得出所述第一个数,w = 0, w e (0,600) u (1700,+oo) w = w—600, me [600,750) =g—w%g,we{w|w0/og>gx2/3,/w/g = w,m2600,w^l700}w = gx5/3—mo/o0,me{w|w%g>j2x2/3,m/0#w,m26OO,w^l7OO}w = w%jg, w eI w%0 >2/3, w/g = w 2 600, w《1700}w = gx2/3—w%g,me{w|w%0>gx2/3,w/0 = 2,w26OO,w^l7OO}其中第一个数=11+原黑点个数,w为黑点个数,"为需要增加的点个数, 当n大于0时,增加黑点的个数,将白色像素翻转为黑色像素,当n小于O时, 减少黑点的个数,将黑色像素翻转为白色像素,w为待嵌入的水印信息位串,^为第一步长。
16、 一种数字水印的提取装置,其特征在于,包括 图像分割处理模块用于将文本文档扫描后进行处理得到单个字符图像区域;字符黑点个数统计4莫块与所述图像分割处理模块相连,用于搜索由字符 组成的封闭连通区域,获取所述连通区域的轮廓码链,统计所述连通区域内的 黑点个数;水印信息提取^f莫块与所述字符黑点个数统计;漢块相连,用于根据所述连 通区域内的黑点个数以及第一步长提取出所述水印信息位串。
17、 如权利要求16所述的装置,其特征在于,所述字符黑点个数统计模 块包括第二边界点标记单元,用于根据八邻域内颜色点的不同判断字符的边界点 并标记;第二码链遍历单元,用于根据所述第二边界点标记单元标记的边界点,按 第一顺序寻找第一个未被遍历过的边界点作为轮廓起始点,并记录进入所述起 始点的方向以及码链信息,根据所述进入方向按第二顺序寻找下一个边界点作 为轮廓点,并记录进入所述轮廓点的方向以及码链信息直至回到起始点;第二码链形成单元,用于根据所述码链遍历单元记录的所有所述码链信息 得到所述连通区域的轮廓码链;黑点个数统计单元,用于统计所述连通区域内的黑点个数。
18、 如权利要求16所述的装置,其特征在于,所述水印提^f莫块按以下公式提取水印信息位串w=0,me{w|[w/g+0.5]% = 0,m2750,m^l700} >=l,we{w|[w/2+0.5]%2 = l,w2750,w^l700}其中,m为黑点个数,w为水印信息位串,g为第一步长。
19、 如权利要求16所述的装置,其特征在于,进一步包括解密模块,与 水印提取模块相连,用于对所述提取的水印信息位串进行解密处理。
全文摘要
本发明涉及数字水印嵌入与提取的方法及装置。解决现有技术中存在的在二值文本图像中嵌入和提取数字水印方式不具备通用性的问题。该数字水印的嵌入方法包括获取待嵌入的水印信息位串;搜索由字符组成的封闭连通区域,获取所述连通区域的轮廓码链;根据所述连通区域内的黑点个数、所述水印信息位串、以及第一步长计算出需要翻转的像素第一个数;沿所述轮廓码链按所述第一个数翻转像素。本发明所述方法嵌入和提取过程更加简洁,不需要事先分块和置乱处理,并且不依赖于文本文档内容的排版格式,不仅提高了运算效率,而且可以有效地抵抗打印扫描过程的攻击,从而可以方便地进行信息跟踪。
文档编号G06T1/00GK101119429SQ20061008906
公开日2008年2月6日 申请日期2006年8月1日 优先权日2006年8月1日
发明者亓文法, 李晓龙, 斌 杨, 熊怀欣, 王立东 申请人:北京北大方正电子有限公司;北京大学