在打印过程中对文档进行水印添加与水印识别的方法转让专利

申请号 : CN201610815528.3

文献号 : CN106484340B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 高磊朱健伟徐叶胡丹妮史俊郝美慈潘婷郭荣春汤福

申请人 : 中标软件有限公司

摘要 :

本发明提供了一种在打印过程中对文档进行水印添加与水印识别的方法,包括如下步骤:S1:打印系统接收办公软件传递的数据;S2:水印添加:打印系统将办公软件传递的数据,结合二值化后的水印信息,进行水印添加,并完成打印;S3:水印识别:结合纸质水印文档扫描件得到的矩阵以及根据办公软件传递的数据得到的矩阵,整合出中间变换矩阵,并根据中间变换矩阵和水印添加的散列矩阵,还原出水印信息。本发明提供的在打印过程中对文档进行水印添加与水印识别的方法,通过对水印信息进行二值化处理,使添加的水印信息具有可知性、不易读性和强抗干扰能力,能更有效地起到保护企业信息以及文档的版权所有等功能。

权利要求 :

1.一种在打印过程中对文档进行水印添加与水印识别的方法,其特征在于:包括如下步骤:S1:打印系统接收办公软件传递的数据;

S2:水印添加:打印系统将办公软件传递的数据,结合二值化后的水印信息,进行水印添加,并完成打印;

S3:水印识别:结合纸质水印文档扫描件得到的矩阵以及根据办公软件传递的数据得到的矩阵,整合出中间变换矩阵,并根据中间变换矩阵和水印添加的散列矩阵,还原出水印信息;

所述步骤S2包括如下步骤:

S21:在打印系统中截断办公软件传进来的PS流或PDF流,利用函数把这些数据流写成特定文件夹下的一个特定文件;

S22:将该特定文件转换成pdf格式或者是jpg格式的转换文件,同时检测该转换文件的长和宽;

S23:自动获取办公软件主机的信息,作为水印信息,并且把获取的水印信息进行二值化处理,得到二值化数据的字符串;

S24:制定一个n*2散列坐标矩阵C,此矩阵的每个坐标按顺序对应二值化数据的字符串中的一个字符;

S25:根据二值化数据生成与特定文件长宽相同的水印信息文件;

S26:将转换文件和水印信息文件重新调用系统read和write函数合成一个加好水印的文件;

S27:将该加好水印的文件转换成与特定文件相同的格式,输送到打印系统中,继续完成打印;

所述步骤S3包括如下步骤:

S31:将打印出的添加好水印纸质版文档进行扫描,生成扫描件;

S32:对该扫描件的兴趣区域进行定位角点的识别,并记录下识别坐标,形成3*2矩阵B;

S33:根据转换文件的长和宽,制定一个3*2定位点坐标矩阵A;

S34:把3*2定位点坐标矩阵A升级成3*3的矩阵A1,把3*2矩阵B升级成3*3的矩阵B1;

S35:根据A1矩阵与B1矩阵,求出中间转换矩阵X,此时X为3*3的变换矩阵;

S36:把n*2散列坐标矩阵C升级成n*3的矩阵C1,根据C1与X求出扫描件中的水印坐标D;

S37:取出D的n*2阶矩阵,得到水印点在扫描件中的精确坐标,一一识别D中坐标,还原成二值化字符串数据,进而还原成原始水印信息。

2.如权利要求1所述的在打印过程中对文档进行水印添加与水印识别的方法,其特征在于:所述步骤S23中,在自动获取办公软件主机的信息,作为水印信息的操作中,包括如下步骤:S231:在打印系统中把要添加的水印信息设计成一个全局结构体;

S232:在打印系统源码中,设计获取作为水印信息的办公软件主机的信息的功能函数;

S233:通过在打印系统源码中设计的功能函数,把获取的系统函数的水印信息传给全局结构体;

S234:在执行打印任务时,从全局结构体中取出水印信息。

3.如权利要求1所述的在打印过程中对文档进行水印添加与水印识别的方法,其特征在于:所述水印信息包括MAC地址、网络IP、时间日期以及特殊字节。

4.如权利要求1所述的在打印过程中对文档进行水印添加与水印识别的方法,其特征在于:所述二值化处理过程中,以数字1表示黑色,以数字0表示白色。

5.如权利要求1所述的在打印过程中对文档进行水印添加与水印识别的方法,其特征在于:水印信息的表现形式为黑白点,所述步骤S24中,当读取散列坐标矩阵C对应的二值化数据为1时,在矩阵C对应的坐标生成一个黑点;当读取散列矩阵对应的二值化数据为0时,在矩阵C对应的坐标生成一个白点。

6.如权利要求1所述的在打印过程中对文档进行水印添加与水印识别的方法,其特征在于:所述步骤S32中,通过Opencv的角点识别技术对扫描件进行定位角点识别。

7.如权利要求1所述的在打印过程中对文档进行水印添加与水印识别的方法,其特征在于:所述步骤S32中,兴趣区域为水印纸质版文档的左上角、右上角与左下角区域。

8.如权利要求1所述的在打印过程中对文档进行水印添加与水印识别的方法,其特征在于:所述步骤S33中,定点坐标矩阵A中的三个坐标点分别为左上角、右上角与左下角。

9.如权利要求1所述的在打印过程中对文档进行水印添加与水印识别的方法,其特征在于:所述步骤S34中,把3*2定位点坐标矩阵A升级成3*3的矩阵A1以及把3*2矩阵B升级成

3*3的矩阵B1的过程中,填充的数字均为1。

10.如权利要求1所述的在打印过程中对文档进行水印添加与水印识别的方法,其特征在于:所述步骤S37中,利用Opencv中的像素识别技术对D中坐标进行识别。

说明书 :

在打印过程中对文档进行水印添加与水印识别的方法

技术领域

[0001] 本发明涉及计算机数据安全技术领域,特别是涉及一种在打印过程中对文档进行水印添加与水印识别的方法。

背景技术

[0002] 在当今这个信息化时代中,数字化信息媒体已经应用到各行各业。它提高了数据存取、文件打印与电子办公等功能的效率,但是伴随而来的信息安全问题也与日俱增。有些个人或集团在没有得到文件所有者的许可下,任意拷贝和传播企业的密级文档资料,造成了企业在经济方面的巨大损失。出于公司的利益考虑,针对企业文档的版权保护就显得尤为重要。数字水印技术是近年来出现的数字产品版权保护技术,可携带有版权信息和认证信息,保护数字产品的合法拷贝和传播,是当前国际学术界的研究热点。
[0003] 就目前市面上对打印的电子文档添加水印的方法而言,可概括为以下两种:
[0004] 1.利用水印软件进行电子文档的水印添加,然后利用办公软件进行打印,最后生成带水印的纸质文档。它是一种前期过程,即在文档开始打印之前,就已经添加好了水印。如图1所示,为现有水印软件添加水印流程图,电子文档首先经过水印软件或者是office办公软件,添加好水印,然后利用办公软件把电子文档传给打印系统。打印系统将办公软件传来的电子文档数据处理成打印机可直接识别的格式,然后连接打印机,最后打印出带水印的纸质文档,因为office办公软件具备水印添加的功能,所以也可称为一种水印软件。
[0005] 此种方法的弊端是:(1)每次电子文档的水印添加不具备自动化功能,都要手动输入添加,添加水印效率低;(2)添加的水印有较强的易读性,不具备信息隐藏的特性。
[0006] 2.利用打印机自身属性来添加水印信息。它是一种后期过程,即在文档打印出的最后一步进行了水印的添加。如图2所示,为现有打印机添加水印流程图,以office办公软件的一张空白电子文档添加水印为例,手动点击程序中的水印添加按钮,选择水印添加模式,嵌入自己要添加的水印信息,同时可设置水印的字体、颜色与字号等选项,点击应用,关闭就添加好了。下面点击打印,最后可打印出已添加好水印的纸质文档。
[0007] 以MP2000PCL打印机为例,基本操作为:打开系统控制面板,找到设备与打印机按钮,单击打开,然后右键点属性,找到打印机首选项,在效果里面有添加水印的功能。
[0008] 此种方法的弊端是:(1)打印文档水印的添加是自动化完成的,但是水印信息不够灵活,水印内容是固定的;(2)添加的水印有较强的易读性,不具备信息隐藏的特性;(3)水印嵌入容量较少,要在31个字符以内。
[0009] 就目前市面上对打印的电子文档添加水印的表现形式而言,可概括为三种:
[0010] 1.添加隐蔽性水印信息。它能更隐蔽的保护文件的版权,但是当这种隐蔽性水印在打印完成后,对其扫描件进行识别的时候,往往会因为各种干扰因素的信号攻击,使之不能被有效的进行识别。
[0011] 2.添加具有可知性与易读性的水印信息。这种方法是目前来说最为普遍使用的方法。它的抗干扰能力较强,鲁棒性好,但是水印信息较为直观,没有一定的隐蔽性。
[0012] 3.添加具有可知性与不易读性的水印信息。这种方法是目前水印添加的一个重要方向,它既有打印扫描过程中的强抗干扰能力,鲁棒性好,又具有一定的隐蔽性。但是在文档打印过程中这种水印技术的实现还不够完善。
[0013] 综上,现有水印添加以及水印识别方法,都存在添加效率低、隐藏信息特性差,水印信息内容固定、嵌入量少等缺点。

发明内容

[0014] 本发明为解决现有手动添加方法存在的水印信息效率低下,水印添加信息易读性强,以及利用打印机添加水印信息内容较固定的缺点,提供了一种在打印过程中对文档进行水印添加与水印识别的方法,包括如下步骤:
[0015] S1:打印系统接收办公软件传递的数据;
[0016] S2:水印添加:打印系统将办公软件传递的数据,结合二值化后的水印信息,进行水印添加,并完成打印;
[0017] S3:水印识别:结合纸质水印文档扫描件得到的矩阵以及根据办公软件传递的数据得到的矩阵,整合出中间变换矩阵,并根据中间变换矩阵和水印添加的散列矩阵,还原出水印信息。
[0018] 其中,所述步骤S2包括如下步骤:
[0019] S21:在打印系统中截断办公软件传进来的PS流或PDF流,利用函数把这些数据流写成特定文件夹下的一个特定文件;
[0020] S22:将该特定文件转换成pdf格式或者是jpg格式的转换文件,同时检测该转换文件的长和宽;
[0021] S23:自动获取办公软件主机的信息,作为水印信息,并且把获取的水印信息进行二值化处理,得到二值化数据的字符串;
[0022] S24:制定一个n*2散列坐标矩阵C,此矩阵的每个坐标按顺序对应二值化数据的字符串中的一个字符;
[0023] S25:根据二值化数据生成与特定文件长宽相同的水印信息文件;
[0024] S26:将转换文件和水印信息文件重新调用系统read和write函数合成一个加好水印的文件;
[0025] S27:将该加好水印的文件转换成与特定文件相同的格式,输送到打印系统中,继续完成打印。
[0026] 其中,所述步骤S23中,在自动获取办公软件主机的信息,作为水印信息的操作中,包括如下步骤:
[0027] S231:在打印系统中把要添加的水印信息设计成一个全局结构体;
[0028] S232:在打印系统源码中,设计获取作为水印信息的办公软件主机的信息的功能函数;
[0029] S233:通过在打印系统源码中设计的功能函数,把获取的系统函数的水印信息传给全局结构体;
[0030] S234:在执行打印任务时,从全局结构体中取出水印信息。
[0031] 其中,所述水印信息包括MAC地址、网络IP、时间日期以及特殊字节。
[0032] 其中,所述二值化处理过程中,以数字1表示黑色,以数字0表示白色。
[0033] 其中,水印信息的表现形式为黑白点,所述步骤S24中,当读取散列坐标矩阵C对应的二值化数据为1时,在矩阵C对应的坐标生成一个黑点;当读取散列矩阵对应的二值化数据为0时,在矩阵C对应的坐标生成一个白点。
[0034] 其中,所述步骤S3包括如下步骤:
[0035] S31:将打印出的添加好水印纸质版文档进行扫描,生成扫描件;
[0036] S32:对该扫描件的兴趣区域进行定位角点的识别,并记录下识别坐标,形成3*2矩阵B;
[0037] S33:根据转换文件的长和宽,制定一个3*2定位点坐标矩阵A;
[0038] S34:把3*2定位点坐标矩阵A升级成3*3的矩阵A1,把3*2矩阵B升级成3*3的矩阵B1;
[0039] S35:根据A1矩阵与B1矩阵,求出中间转换矩阵X,此时X为3*3的变换矩阵;
[0040] S36:把n*2散列坐标矩阵C升级成n*3的矩阵C1,根据C1与X求出扫描件中的水印坐标D;
[0041] S37:取出D的n*2阶矩阵,得到水印点在扫描件中的精确坐标,一一识别D中坐标,还原成二值化字符串数据,进而还原成原始水印信息。
[0042] 其中,所述步骤S32中,通过Opencv的角点识别技术对扫描件进行定位角点识别。
[0043] 其中,所述步骤S32中,兴趣区域为水印纸质版文档的左上角、右上角与左下角区域。
[0044] 其中,所述步骤S33中,定点坐标矩阵A中的三个坐标点分别为左上角、右上角与左下角。
[0045] 其中,所述步骤S34中,把3*2定位点坐标矩阵A升级成3*3的矩阵A1以及把3*2矩阵B升级成3*3的矩阵B1的过程中,填充的数字均为1。
[0046] 其中,所述步骤S37中,利用Opencv中的像素识别技术对D中坐标进行识别。
[0047] 本发明的有益效果是:通过对水印信息进行二值化处理,使添加的水印信息具有可知性、不易读性和强抗干扰能力,能更有效地起到保护企业信息以及文档的版权所有等功能。

附图说明

[0048] 图1:现有水印软件添加水印流程图;
[0049] 图2:现有打印机添加水印流程图;
[0050] 图3:本发明打印流程图;
[0051] 图4:根据本发明的实施例的水印添加流程图;
[0052] 图5:根据本发明的实施例的水印识别流程图。

具体实施方式

[0053] 为了对本发明的技术方案和有益效果有进一步了解,下文特根据具体实施方式详细描述本发明的技术方案和有益效果。
[0054] 本发明提供的在打印过程中对文档进行水印添加的方法,包括如下步骤:
[0055] S1:打印系统接收办公软件传递的数据;
[0056] S2:水印添加:打印系统将办公软件传递的数据,结合二值化后的水印信息,进行水印添加,并完成打印;
[0057] S3:水印识别:结合纸质水印文档扫描件得到的矩阵以及根据办公软件传递的数据得到的矩阵,整合出中间变换矩阵,并根据中间变换矩阵和水印添加的散列矩阵,还原出水印信息。
[0058] 本发明中,通过对水印信息进行二值化处理,使添加的水印信息具有不易读性,能更有效地起到保护企业信息以及文档的版权所有等功能。
[0059] 图3所示为本发明的打印总体流程图,如图所示,本发明的总体打印过程流程中,各步骤或部件的概念及作用详细说明如下:
[0060] 办公软件:用于向打印系统传递需要打印数据的软件,比如说,windows平台中的office,linux系统中的openoffice。
[0061] PS流和PDF流:办公软件要传给打印系统的数据。当用户使用办公软件打开自己要打印的文件时,单击打印,这时办公软件会把要打印的数据传送给打印系统。这种传送的打印数据有两种形式,一种是PS流,另外一种就是PDF流。当打印的文件类型比如是.doc、.excel、.txt结尾的文件,传输的数据则为PS流。当打印文件类型是.pdf、.jpg等类型时,传送的数据则为PDF流。
[0062] 配置文件:用于辅助确保打印流程顺利、准确的执行。这其中包含一些打印机接口配置文件、打印机驱动引导配置文件、过滤器调用配置文件等等。
[0063] 打印系统:是打印机制的一个桥梁。它起到一个承上启下的作用。承上:它接收办公软件传来的文件数据。启下:把接收的数据进行调度处理,最终生成打印机可直接识别的语言。
[0064] cups-filter:提供各种打印过程中需要的过滤器。打印系统会调用cups-filter对其接收的数据进行处理,目的是为了能更好的支持不同种情况的文件打印。比如说texttops过滤器,它能把text格式的内容转化成PS流格式。pstoraster过滤器能把外部的PS流过滤成一种raster光栅流。
[0065] GhostScript:能够把PS流和PDF流等数据转换成打印机能直接识别的语言,比如说PCL语言。打印系统会调用GhostScript来处理其接收数据的最后一步,进而传给打印机进行打印。
[0066] 打印机:接收打印系统传来的最终打印数据,行使最后的打印功能。
[0067] 图4为根据本发明的实施例的水印添加流程图;如图所示,以linux系统,办公软件openoffice,打印系统为cups为例,本发明的一实施例中,在打印过程中对文档进行水印添加的方法,包括如下步骤:
[0068] S21:在打印系统中截断办公软件传进来的PS流或PDF流,利用write函数把这些数据流写成特定文件夹下的一个特定文件,这里命名为print-src;
[0069] S22:将print-src文件转换成pdf格式或者是jpg格式,这里以转换成pdf为例;此时如若print-src文件为pdf格式则不用转换;命名转化后的文件名称为print-src-pdf,同时检测一下print-src-pdf文件的长和宽;
[0070] S23:获取办公软件主机的信息,如MAC地址、网络IP、时间日期和特殊字节作为水印信息,具体获取信息可根据不同需求而定;把获取的水印信息进行二值化处理,得到二值化数据的字符串;
[0071] S24:制定一个n*2散列坐标矩阵C,此矩阵的每个坐标(x,y)按顺序对应二值化字符串中的一个字符;
[0072] S25:根据二值化数据生成与print-src长宽相同的水印pdf文件,命名为watermark-pdf;由于特定文件print-src作为打印的电子文档的中间临时文件,长宽都可以测量,而水印信息二值化的数据需要与原始打印数据融合,转化成水印信息的文件的格式需要与特定文件的格式一样,因此,将水印信息文件的长宽设为与特定文件的长宽相同,可以保证精确的融合,从而确保水印信息在融合后的文件中相对位置不发生变化,为后期水印信息的高精确定位识别奠定基础;
[0073] S26:将print-src-pdf文件和watermark-pdf文件重新调用系统read和write函数合成一个新的文件命名为watermark-print-pdf;
[0074] S27:将watermark-print-pdf转换成与print-src文件相同的格式,输送到打印系统中,继续完成打印。
[0075] 其中,所述步骤S23中,在自动获取办公软件主机的信息,作为水印信息的操作中,包括如下步骤:
[0076] S231:在打印系统中把要添加的水印信息设计成一个全局结构体;比如说命名Watermark_info。结构体里面的变量假设仅有四种,分别是:MAC地址:char*m_mac,IP地址:char*m_ip,时间:char*m_time,特殊字节:char*m_othermark。
[0077] S232:在打印系统源码中,设计获取作为水印信息的办公软件主机的信息(如MAC地址、IP地址、时间和特殊字节)的功能函数;
[0078] 比如获取办公软件的主机MAC地址和IP地址,在打印系统的源码中,写一段执行操作系统脚本的命令函数,执行脚本ifconfig命令,便可获得带有MAC地址和IP地址的字符串。(1)获取MAC地址:首先调用strstr函数匹配Hwaddr字符串,以空格作为另一个标记结束符,然后调用strtok函数截取Hwaddr到空格之间的字符串,那么便可获取MAC地址。(2)同理,获取IP地址的方法也类似,首先调用strstr函数匹配inet addr字符串,以空格作为另一个标记结束符,然后调用strtok函数截取inet addr字符串到空格之间的字符串,那么便可获取IP地址。
[0079] 获取办公软件主机的时间,在打印系统中,调用date命令,便可获取办公软件主机时间信息。
[0080] 获取特殊字符,特殊字符是提前存在系统堆空间里面的一段字符串。在每次打印电子文档之前,重新获得指定堆里面的特殊字符便可。
[0081] S233:通过在打印系统源码中设计的功能函数,把获取的系统函数的水印信息传给全局结构体,即;Watermark_info结构体。
[0082] S234:在执行打印任务时,从全局结构体中取出水印信息。
[0083] 也即,所谓的实时获取水印信息是指,当打印电子版文档时,称打印一次电子文档为一个任务,那么每有一个任务要执行时,打印系统中存放水印信息的全局变量便会更新一次,所以每次打印的文档添加的水印信息都是最新的,所以称为实时获取。
[0084] 与实时获取水印信息相配合的是,后期这种打印系统会设计成通用化阶段,所谓通用化阶段是指:此种打印系统会有界面管理的功能,各购买公司可以点击添加的水印信息的按钮,进行水印信息种类的选择。
[0085] 因此,就目前这种定制化的系统来说,当确定好系统要添加的水印信息类型时,比如说:时间和特殊字节,那么添加的水印信息内容对时间的获取和特殊字节都是打印系统自动实时更新的,不用人工进行手工输入水印信息,添加的水印信息准确无误,并且节省了工作时间,提高了工作效率。
[0086] 本发明中,优选在二值化处理过程中,以数字1表示黑色,以数字0表示白色。
[0087] 本发明中,生成的watermark-pdf文件,优选水印信息的表现形式是黑白点,即当读取散列坐标矩阵C对应的二值化数据为1时,在矩阵C对应的坐标生成一个黑点;当读取散列矩阵对应的二值化数据为0时,在矩阵C对应的坐标生成一个白点。
[0088] 本发明提供的水印添加方法,只变更了打印过程中的中间过程,并没有更改打印过程的流程逻辑。
[0089] 图5为根据本发明的实施例的水印识别流程图;如图所示,本发明的一实施例中,在打印过程中对文档进行水印识别的方法,包括如下步骤:
[0090] S31:将添加好的水印纸质版文档进行扫描,生成例如为jpg格式的扫描件,这里命名为scan-watermark;
[0091] S32:对scan-watermark文件的兴趣区域进行定位角点的识别,并记录下识别坐标,形成3*2矩阵B;
[0092] S33:根据print-src-pdf文件的长和宽,制定一个3*2定位点坐标矩阵A,在此为标准pdf 3*2定位点坐标矩阵A;
[0093] S34:把3*2定位点坐标矩阵A升级成3*3的矩阵A1,把3*2矩阵B升级成3*3的矩阵B1;
[0094] S35:根据A1矩阵与B1矩阵,求出中间转换矩阵X,此时X为3*3的变换矩阵;
[0095] S36:把n*2散列坐标矩阵C升级成n*3的矩阵C1,根据C1与X求出扫描件中的水印坐标D;
[0096] S37:取出D的n*2阶矩阵,得到水印点在扫描件中的精确坐标,一一识别D中坐标,还原成二值化字符串数据,进而还原成原始水印信息。
[0097] 已知标准PDF定位点3*2矩阵A与水印识别的定位点3*2矩阵B,那么根据矩阵公式AX=B,可求出中间转换矩阵X。根据数学的矩阵知识则可知,X为一个2*2的矩阵。此法求出的X是错误的。因为对比扫描件中的水印点与标准纸质版文件中的水印点,它一方面发生了旋转变化,另外一方面同时还发生了平移。X矩阵是一个2*2的矩阵,它只能描述定位点发生的旋转变化,却不能包含平移的变化。因此,本发明通过先分别先将矩阵A和矩阵B升级,再求出中间转换矩阵X,此中间转换矩阵X的前两维描述了旋转的角度,后一维描述了平移的距离。因此,本发明提供的水印识别方法,具有高精准定位、抗旋转、抗平移与识别结果准确等效果。同时,可以在散列坐标矩阵发生了旋转又发生平移后能够精准找到其实际坐标矩阵,也即水印坐标D。
[0098] 本发明中,优选通过Opencv的角点识别技术对扫描件进行定位角点识别。
[0099] 本发明中,优选兴趣区域为水印纸质版文档的左上角、右上角与左下角区域。
[0100] 本发明中,优选所述步骤S33中,定点坐标矩阵A中的三个坐标点分别为左上角、右上角与左下角。
[0101] 本发明中,优选所述步骤S34中,把3*2定位点坐标矩阵A升级成3*3的矩阵A1以及把3*2矩阵B升级成3*3的矩阵B1的过程中,填充的数字均为1。
[0102] 本发明中,优选所述步骤S37中,利用Opencv中的像素识别技术对D中坐标进行识别。
[0103] 以下通过一较佳的具体实施例,进一步论证本发明的技术方案极其有益效果:
[0104] 具体的操作环境如下:
[0105] 硬件平台为:电脑及配套设施、HPlaserJet打印机1010、紫光扫描仪。
[0106] 软件平台为:linux操作系统、cups打印系统及配套、openoffice办公软件。
[0107] 这里以添加一个固定字符串Hello为例,打印的电子文档可任意,以一个空白pdf电子文档进行说明:
[0108] 1)截取打印系统cups接收办公软件传来的数据,生成/var/spool/cups/print-src文档,进而转化成print-src-pdf。
[0109] 2)把要添加的水印信息二值化处理,即01表示的这种形式。比如说H的这个字符01001000,那么在表示的时候,也就是加水印的时候,如果说是1的时候就打印成黑点,而0的时候就打印成白点。比如说本例,三个定位点坐标为(20,80)(560,80)(20,820),也就是文档的左上角、右上角和左下角(文档以左上角为坐标原点)。就是在文档的三个角打上黑点。
[0110] 3)添加水印信息,将Hello单词转化的二值化字符串,以第一个水印添加的点坐标是(15,800),每行添加四个水印点,距离为20,下一行的起始点为(15,780)依次类推,进行水印点的添加。这里的散列矩阵,我把它做成一个简单有规律可循的矩阵形式。生成watermark-pdf。
[0111] 4)将print-src文件与watermark-pdf文件生成watermark-print-pdf。然后把watermark-print-pdf文件转换成和print-src原始类型一样的数据,返回给打印系统,继续打印则好。
[0112] 水印识别:
[0113] 1)运用opencv角点识别技术对图片的定位点进行识别,识别出的坐标把它做成一个矩阵命名为B为 把标准PDF文件的三个定位点写成A矩阵
[0114] 2)对A和B矩阵进行升级,A1矩阵为 B1矩阵为
[0115] 3)根据矩阵公式A1X=B1,求出X中间转换矩阵,然后把水印矩阵乘以X,则得到图片中的水印点矩阵。
[0116] 4)运用opencv里面的像素识别技术,识别图片中水印坐标的像素值,那么就可以知道这个点是黑的还是白。黑的记为1,白的记为0,那么按照添加水印的散列矩阵一个个的识别出来,形成二值化字符串,进而再还原成水印信息,达到水印的识别效果。
[0117] 本发明中的上述实施例中,以将特定文件转换成pdf格式为例进行说明,然而实际操作中,也可以转换成jpg格式,同样可以实现使添加的水印信息具有可知性、不易读性和强抗干扰能力以及在对水印进行识别时,具有高精准定位、抗旋转、抗平移与识别结果精确的效果,本发明不加以限制。
[0118] 本发明中,上述出现的各技术用语表示的具体含义如下:
[0119] 1.cups:通用Unix打印系统(Common UNIX Printing System),为Unix/Linux操作系统打印提供了一个比较完整的打印解决方案。它使用IPP互联网打印协议(Internet Printing Protocol)来管理打印工作及队列,同时支持LPD行式打印机后台程序(Line Printer Daemon)和SMB服务器信息块(Server Message Block)以及AppSocket等通信协议。
[0120] 2.PS流和PDF流:PS流是读取PostScript语言文件过程中的流数据,PostScript语言是一种与设备无关的打印机页面描述语言。它对文本和图形实行同样的处理过程,给处理字体和图片带来了极大的灵活性。PDF流是读取pdf格式文档的流数据。
[0121] 3.Ghostscript:是一套基于Adobe、PostScript及可移植文档格式(PDF)的页面描述语言等而编译成的免费软件。能够把PS流和PDF流等数据转换成打印机能直接打印的语言,也可把一种文件转换成另外一种文件格式(如把jpg格式转换成pdf格式)。
[0122] 4.二值化:也称为黑白化。就是将灰度值设置为0或255,使得仅有黑和白两种情况,本专利中把黑记为1,白记为零。
[0123] 5.水印的各种性质:
[0124] 鲁棒性:鲁棒为坚固的意思,是指在经历多种无意或有意的信号攻击过程后,添加的水印仍能保持完整性或部分完整性并能被准确鉴别。
[0125] 隐蔽性:又称不可知性,是指添加的水印在普通视觉条件下不可见。
[0126] 可知性:是指水印在通常的视觉条件下是可见的。
[0127] 易读性:是指人可轻易的识别出水印信息内容。
[0128] 嵌入容量:是指载体在不发生形变的前提下可嵌入的水印信息量。
[0129] 6.水印识别的各种性质:
[0130] 抗旋转性:是指允许水印旋转一定的角度,不影响其识别结果。
[0131] 抗平移性:是指允许水印平移一定的距离,不影响其识别结果。
[0132] 综上,本发明所能实现的有益效果是:
[0133] 1.通过在文档打印过程中,实时动态地获取添加水印信息,自动化的进行水印添加,提高了企业对文档添加水印的添加效率,降低了工作成本。
[0134] 2、通过对水印信息进行二值化处理,使添加的水印信息具有可知性、不易读性和强抗干扰能力,能更有效地起到保护企业信息以及文档的版权所有等功能。
[0135] 3、通过对矩阵A和矩阵B先升级再计算中间变换矩阵,使得本发明在对水印进行识别的时候,具有高精准定位、抗旋转、抗平移与识别结果精确的优点。
[0136] 综上,本发明提供的在打印过程中对文档进行水印添加与水印识别的方法,一方面能节省公司非自动化添加水印的时间,同时又能保证实时动态的更新水印信息,有效提高了办公效率。另一方面,文档水印的添加起到了对文档监视、文档真伪鉴别和版权保护的功能,能更为有效的防范企业内部文档的恶意传播与保护版权所有问题。同时给出了应用这种智能化水印添加方法打印出的文档扫描件的高精准定位和抗旋转、抗平移干扰能力的水印识别技术。
[0137] 虽然本发明已利用上述较佳实施例进行说明,然其并非用以限定本发明的保护范围,任何本领域技术人员在不脱离本发明的精神和范围之内,相对上述实施例进行各种变动与修改仍属本发明所保护的范围,因此本发明的保护范围以权利要求书所界定的为准。