本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)安全技術(shù)領(lǐng)域,特別是涉及一種在打印過程中對文檔進(jìn)行水印添加與水印識別的方法。
背景技術(shù):
在當(dāng)今這個(gè)信息化時(shí)代中,數(shù)字化信息媒體已經(jīng)應(yīng)用到各行各業(yè)。它提高了數(shù)據(jù)存取、文件打印與電子辦公等功能的效率,但是伴隨而來的信息安全問題也與日俱增。有些個(gè)人或集團(tuán)在沒有得到文件所有者的許可下,任意拷貝和傳播企業(yè)的密級文檔資料,造成了企業(yè)在經(jīng)濟(jì)方面的巨大損失。出于公司的利益考慮,針對企業(yè)文檔的版權(quán)保護(hù)就顯得尤為重要。數(shù)字水印技術(shù)是近年來出現(xiàn)的數(shù)字產(chǎn)品版權(quán)保護(hù)技術(shù),可攜帶有版權(quán)信息和認(rèn)證信息,保護(hù)數(shù)字產(chǎn)品的合法拷貝和傳播,是當(dāng)前國際學(xué)術(shù)界的研究熱點(diǎn)。
就目前市面上對打印的電子文檔添加水印的方法而言,可概括為以下兩種:
1.利用水印軟件進(jìn)行電子文檔的水印添加,然后利用辦公軟件進(jìn)行打印,最后生成帶水印的紙質(zhì)文檔。它是一種前期過程,即在文檔開始打印之前,就已經(jīng)添加好了水印。如圖1所示,為現(xiàn)有水印軟件添加水印流程圖,電子文檔首先經(jīng)過水印軟件或者是office辦公軟件,添加好水印,然后利用辦公軟件把電子文檔傳給打印系統(tǒng)。打印系統(tǒng)將辦公軟件傳來的電子文檔數(shù)據(jù)處理成打印機(jī)可直接識別的格式,然后連接打印機(jī),最后打印出帶水印的紙質(zhì)文檔,因?yàn)閛ffice辦公軟件具備水印添加的功能,所以也可稱為一種水印軟件。
此種方法的弊端是:(1)每次電子文檔的水印添加不具備自動(dòng)化功能,都要手動(dòng)輸入添加,添加水印效率低;(2)添加的水印有較強(qiáng)的易讀性,不具備信息隱藏的特性。
2.利用打印機(jī)自身屬性來添加水印信息。它是一種后期過程,即在文檔打印出的最后一步進(jìn)行了水印的添加。如圖2所示,為現(xiàn)有打印機(jī)添加水印流程圖,以office辦公軟件的一張空白電子文檔添加水印為例,手動(dòng)點(diǎn)擊程序中的水印添加按鈕,選擇水印添加模式,嵌入自己要添加的水印信息,同時(shí)可設(shè)置水印的字體、顏色與字號等選項(xiàng),點(diǎn)擊應(yīng)用,關(guān)閉就添加好了。下面點(diǎn)擊打印,最后可打印出已添加好水印的紙質(zhì)文檔。
以MP2000PCL打印機(jī)為例,基體操作為:打開系統(tǒng)控制面板,找到設(shè)備與打印機(jī)按鈕,單擊打開,然后右鍵點(diǎn)屬性,找到打印機(jī)首選項(xiàng),在效果里面有添加水印的功能。
此種方法的弊端是:(1)打印文檔水印的添加是自動(dòng)化完成的,但是水印信息不夠靈活,水印內(nèi)容是固定的;(2)添加的水印有較強(qiáng)的易讀性,不具備信息隱藏的特性;(3)水印嵌入容量較少,要在31個(gè)字符以內(nèi)。
就目前市面上對打印的電子文檔添加水印的表現(xiàn)形式而言,可概括為三種:
1.添加隱蔽性水印信息。它能更隱蔽的保護(hù)文件的版權(quán),但是當(dāng)這種隱蔽性水印在打印完成后,對其掃描件進(jìn)行識別的時(shí)候,往往會因?yàn)楦鞣N干擾因素的信號攻擊,使之不能被有效的進(jìn)行識別。
2.添加具有可知性與易讀性的水印信息。這種方法是目前來說最為普遍使用的方法。它的抗干擾能力較強(qiáng),魯棒性好,但是水印信息較為直觀,沒 有一定的隱蔽性。
3.添加具有可知性與不易讀性的水印信息。這種方法是目前水印添加的一個(gè)重要方向,它既有打印掃描過程中的強(qiáng)抗干擾能力,魯棒性好,又具有一定的隱蔽性。但是在文檔打印過程中這種水印技術(shù)的實(shí)現(xiàn)還不夠完善。
綜上,現(xiàn)有水印添加以及水印識別方法,都存在添加效率低、隱藏信息特性差,水印信息內(nèi)容固定、嵌入量少等缺點(diǎn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明為解決現(xiàn)有手動(dòng)添加方法存在的水印信息效率低下,水印添加信息易讀性強(qiáng),以及利用打印機(jī)添加水印信息內(nèi)容較固定的缺點(diǎn),提供了一種在打印過程中對文檔進(jìn)行水印添加與水印識別的方法,包括如下步驟:
S1:打印系統(tǒng)接收辦公軟件傳遞的數(shù)據(jù);
S2:水印添加:打印系統(tǒng)將辦公軟件傳遞的數(shù)據(jù),結(jié)合二值化后的水印信息,進(jìn)行水印添加,并完成打?。?/p>
S3:水印識別:結(jié)合紙質(zhì)水印文檔掃描件得到的矩陣以及根據(jù)辦公軟件傳遞的數(shù)據(jù)得到的矩陣,整合出中間變換矩陣,并根據(jù)中間變換矩陣和水印添加的散列矩陣,還原出水印信息。
其中,所述步驟S2包括如下步驟:
S21:在打印系統(tǒng)中截?cái)噢k公軟件傳進(jìn)來的PS流或PDF流,利用函數(shù)把這些數(shù)據(jù)流寫成特定文件夾下的一個(gè)特定文件;
S22:將該特定文件轉(zhuǎn)換成pdf格式或者是jpg格式的轉(zhuǎn)換文件,同時(shí)檢測該轉(zhuǎn)換文件的長和寬;
S23:自動(dòng)獲取辦公軟件主機(jī)的信息,作為水印信息,并且把獲取的水 印信息進(jìn)行二值化處理,得到二值化數(shù)據(jù)的字符串;
S24:制定一個(gè)n*2散列坐標(biāo)矩陣C,此矩陣的每個(gè)坐標(biāo)按順序?qū)?yīng)二值化數(shù)據(jù)的字符串中的一個(gè)字符;
S25:根據(jù)二值化數(shù)據(jù)生成與特定文件長寬相同的水印信息文件;
S26:將轉(zhuǎn)換文件和水印信息文件重新調(diào)用系統(tǒng)read和write函數(shù)合成一個(gè)加好水印的文件;
S27:將該加好水印的文件轉(zhuǎn)換成與特定文件相同的格式,輸送到打印系統(tǒng)中,繼續(xù)完成打印。
其中,所述步驟S23中,在自動(dòng)獲取辦公軟件主機(jī)的信息,作為水印信息的操作中,包括如下步驟:
S231:在打印系統(tǒng)中把要添加的水印信息設(shè)計(jì)成一個(gè)全局結(jié)構(gòu)體;
S232:在打印系統(tǒng)源碼中,設(shè)計(jì)獲取作為水印信息的辦公軟件主機(jī)的信息的功能函數(shù);
S233:通過在打印系統(tǒng)源碼中設(shè)計(jì)的功能函數(shù),把獲取的系統(tǒng)函數(shù)的水印信息傳給全局結(jié)構(gòu)體;
S234:在執(zhí)行打印任務(wù)時(shí),從全局結(jié)構(gòu)體中取出水印信息。
其中,所述水印信息包括MAC地址、網(wǎng)絡(luò)IP、時(shí)間日期以及特殊字節(jié)。
其中,所述二值化處理過程中,以數(shù)字1表示黑色,以數(shù)字0表示白色。
其中,水印信息的表現(xiàn)形式為黑白點(diǎn),所述步驟S24中,當(dāng)讀取散列坐標(biāo)矩陣C對應(yīng)的二值化數(shù)據(jù)為1時(shí),在矩陣C對應(yīng)的坐標(biāo)生成一個(gè)黑點(diǎn);當(dāng)讀取散列矩陣對應(yīng)的二值化數(shù)據(jù)為0時(shí),在矩陣C對應(yīng)的坐標(biāo)生成一個(gè)白點(diǎn)。
其中,所述步驟S3包括如下步驟:
S31:將打印出的添加好水印紙質(zhì)版文檔進(jìn)行掃描,生成掃描件;
S32:對該掃描件的興趣區(qū)域進(jìn)行定位角點(diǎn)的識別,并記錄下識別坐標(biāo),形成3*2矩陣B;
S33:根據(jù)轉(zhuǎn)換文件的長和寬,制定一個(gè)3*2定位點(diǎn)坐標(biāo)矩陣A;
S34:把3*2定位點(diǎn)坐標(biāo)矩陣A升級成3*3的矩陣A1,把3*2矩陣B升級成3*3的矩陣B1;
S35:根據(jù)A1矩陣與B1矩陣,求出中間轉(zhuǎn)換矩陣X,此時(shí)X為3*3的變換矩陣;
S36:把n*2散列坐標(biāo)矩陣C升級成n*3的矩陣C1,根據(jù)C1與X求出掃描件中的水印坐標(biāo)D;
S37:取出D的n*2階矩陣,得到水印點(diǎn)在掃描件中的精確坐標(biāo),一一識別D中坐標(biāo),還原成二值化字符串?dāng)?shù)據(jù),進(jìn)而還原成原始水印信息。
其中,所述步驟S32中,通過Opencv的角點(diǎn)識別技術(shù)對掃描件進(jìn)行定位角點(diǎn)識別。
其中,所述步驟S32中,興趣區(qū)域?yàn)樗〖堎|(zhì)版文檔的左上角、右上角與左下角區(qū)域。
其中,所述步驟S33中,定點(diǎn)坐標(biāo)矩陣A中的三個(gè)坐標(biāo)點(diǎn)分別為左上角、右上角與左下角。
其中,所述步驟S34中,把3*2定位點(diǎn)坐標(biāo)矩陣A升級成3*3的矩陣A1以及把3*2矩陣B升級成3*3的矩陣B1的過程中,填充的數(shù)字均為1。
其中,所述步驟S37中,利用Opencv中的像素識別技術(shù)對D中坐標(biāo)進(jìn) 行識別。
本發(fā)明的有益效果是:通過對水印信息進(jìn)行二值化處理,使添加的水印信息具有可知性、不易讀性和強(qiáng)抗干擾能力,能更有效地起到保護(hù)企業(yè)信息以及文檔的版權(quán)所有等功能。
附圖說明
圖1:現(xiàn)有水印軟件添加水印流程圖;
圖2:現(xiàn)有打印機(jī)添加水印流程圖;
圖3:本發(fā)明打印流程圖;
圖4:根據(jù)本發(fā)明的實(shí)施例的水印添加流程圖;
圖5:根據(jù)本發(fā)明的實(shí)施例的水印識別流程圖。
具體實(shí)施方式
為了對本發(fā)明的技術(shù)方案和有益效果有進(jìn)一步了解,下文特根據(jù)具體實(shí)施方式詳細(xì)描述本發(fā)明的技術(shù)方案和有益效果。
本發(fā)明提供的在打印過程中對文檔進(jìn)行水印添加的方法,包括如下步驟:
S1:打印系統(tǒng)接收辦公軟件傳遞的數(shù)據(jù);
S2:水印添加:打印系統(tǒng)將辦公軟件傳遞的數(shù)據(jù),結(jié)合二值化后的水印信息,進(jìn)行水印添加,并完成打??;
S3:水印識別:結(jié)合紙質(zhì)水印文檔掃描件得到的矩陣以及根據(jù)辦公軟件傳遞的數(shù)據(jù)得到的矩陣,整合出中間變換矩陣,并根據(jù)中間變換矩陣和水印添加的散列矩陣,還原出水印信息。
本發(fā)明中,通過對水印信息進(jìn)行二值化處理,使添加的水印信息具有不 易讀性,能更有效地起到保護(hù)企業(yè)信息以及文檔的版權(quán)所有等功能。
圖3所示為本發(fā)明的打印總體流程圖,如圖所示,本發(fā)明的總體打印過程流程中,各步驟或部件的概念及作用詳細(xì)說明如下:
辦公軟件:用于向打印系統(tǒng)傳遞需要打印數(shù)據(jù)的軟件,比如說,windows平臺中的office,linux系統(tǒng)中的openoffice。
PS流和PDF流:辦公軟件要傳給打印系統(tǒng)的數(shù)據(jù)。當(dāng)用戶使用辦公軟件打開自己要打印的文件時(shí),單擊打印,這時(shí)辦公軟件會把要打印的數(shù)據(jù)傳送給打印系統(tǒng)。這種傳送的打印數(shù)據(jù)有兩種形式,一種是PS流,另外一種就是PDF流。當(dāng)打印的文件類型比如是.doc、.excel、.txt結(jié)尾的文件,傳輸?shù)臄?shù)據(jù)則為PS流。當(dāng)打印文件類型是.pdf、.jpg等類型時(shí),傳送的數(shù)據(jù)則為PDF流。
配置文件:用于輔助確保打印流程順利、準(zhǔn)確的執(zhí)行。這其中包含一些打印機(jī)接口配置文件、打印機(jī)驅(qū)動(dòng)引導(dǎo)配置文件、過濾器調(diào)用配置文件等等。
打印系統(tǒng):是打印機(jī)制的一個(gè)橋梁。它起到一個(gè)承上啟下的作用。承上:它接收辦公軟件傳來的文件數(shù)據(jù)。啟下:把接收的數(shù)據(jù)進(jìn)行調(diào)度處理,最終生成打印機(jī)可直接識別的語言。
cups-filter:提供各種打印過程中需要的過濾器。打印系統(tǒng)會調(diào)用cups-filter對其接收的數(shù)據(jù)進(jìn)行處理,目的是為了能更好的支持不同種情況的文件打印。比如說teexttops過濾器,它能把text格式的內(nèi)容轉(zhuǎn)化成PS流格式。pstoraster過濾器能把外部的PS流過濾成一種raster光柵流。
GhostScript:能夠把PS流和PDF流等數(shù)據(jù)轉(zhuǎn)換成打印機(jī)能直接識別的語言,比如說PCL語言。打印系統(tǒng)會調(diào)用GhostScript來處理其接收數(shù)據(jù)的 最后一步,進(jìn)而傳給打印機(jī)進(jìn)行打印。
打印機(jī):接收打印系統(tǒng)傳來的最終打印數(shù)據(jù),行使最后的打印功能。
圖4為根據(jù)本發(fā)明的實(shí)施例的水印添加流程圖;如圖所示,以linux系統(tǒng),辦公軟件openoffice,打印系統(tǒng)為cups為例,本發(fā)明的一實(shí)施例中,在打印過程中對文檔進(jìn)行水印添加的方法,包括如下步驟:
S21:在打印系統(tǒng)中截?cái)噢k公軟件傳進(jìn)來的PS流或PDF流,利用write函數(shù)把這些數(shù)據(jù)流寫成特定文件夾下的一個(gè)特定文件,這里命名為print-src;
S22:將print-src文件轉(zhuǎn)換成pdf格式或者是jpg格式,這里以轉(zhuǎn)換成pdf為例;此時(shí)如若print-src文件為pdf格式則不用轉(zhuǎn)換;命名轉(zhuǎn)化后的文件名稱為print-src-pdf,同時(shí)檢測一下print-src-pdf文件的長和寬;
S23:獲取辦公軟件主機(jī)的信息,如MAC地址、網(wǎng)絡(luò)IP、時(shí)間日期和特殊字節(jié)作為水印信息,具體獲取信息可根據(jù)不同需求而定;把獲取的水印信息進(jìn)行二值化處理,得到二值化數(shù)據(jù)的字符串;
S24:制定一個(gè)n*2散列坐標(biāo)矩陣C,此矩陣的每個(gè)坐標(biāo)(x,y)按順序?qū)?yīng)二值化字符串中的一個(gè)字符;
S25:根據(jù)二值化數(shù)據(jù)生成與print-src長寬相同的水印pdf文件,命名為watermark-pdf;由于特定文件print-src作為打印的電子文檔的中間臨時(shí)文件,長寬都可以測量,而水印信息二值化的數(shù)據(jù)需要與原始打印數(shù)據(jù)融合,轉(zhuǎn)化成水印信息的文件的格式需要與特定文件的格式一樣,因此,將水印信息文件的長寬設(shè)為與特定文件的長寬相同,可以保證精確的融合,從而確保水印信息在融合后的文件中相對位置不發(fā)生變化,為后期水印信息的高精確定位識別奠定基礎(chǔ);
S26:將print-src-pdf文件和watermark-pdf文件重新調(diào)用系統(tǒng)read和write函數(shù)合成一個(gè)新的文件命名為watermark-print-pdf;
S27:將watermark-print-pdf轉(zhuǎn)換成與print-src文件相同的格式,輸送到打印系統(tǒng)中,繼續(xù)完成打印。
其中,所述步驟S23中,在自動(dòng)獲取辦公軟件主機(jī)的信息,作為水印信息的操作中,包括如下步驟:
S231:在打印系統(tǒng)中把要添加的水印信息設(shè)計(jì)成一個(gè)全局結(jié)構(gòu)體;比如說命名Watermark_info。結(jié)構(gòu)體里面的變量假設(shè)僅有四種,分別是:MAC地址:char*m_mac,IP地址:char*m_ip,時(shí)間:char*m_time,特殊字節(jié):char*m_othermark。
S232:在打印系統(tǒng)源碼中,設(shè)計(jì)獲取作為水印信息的辦公軟件主機(jī)的信息(如MAC地址、IP地址、時(shí)間和特殊字節(jié))的功能函數(shù);
比如獲取辦公軟件的主機(jī)MAC地址和IP地址,在打印系統(tǒng)的源碼中,寫一段執(zhí)行操作系統(tǒng)腳本的命令函數(shù),執(zhí)行腳本ifconfig命令,便可獲得帶有MAC地址和IP地址的字符串。(1)獲取MAC地址:首先調(diào)用strstr函數(shù)匹配Hwaddr字符串,以空格作為另一個(gè)標(biāo)記結(jié)束符,然后調(diào)用strtok函數(shù)截取Hwaddr到空格之間的字符串,那么便可獲取MAC地址。(2)同理,獲取IP地址的方法也類似,首先調(diào)用strstr函數(shù)匹配inet addr字符串,以空格作為另一個(gè)標(biāo)記結(jié)束符,然后調(diào)用strtok函數(shù)截取inet addr字符串到空格之間的字符串,那么便可獲取IP地址。
獲取辦公軟件主機(jī)的時(shí)間,在打印系統(tǒng)中,調(diào)用date命令,便可獲取辦公軟件主機(jī)時(shí)間信息。
獲取特殊字符,特殊字符是提前存在系統(tǒng)堆空間里面的一段字符串。在每次打印電子文檔之前,重新獲得指定堆里面的特殊字符便可。
S233:通過在打印系統(tǒng)源碼中設(shè)計(jì)的功能函數(shù),把獲取的系統(tǒng)函數(shù)的水印信息傳給全局結(jié)構(gòu)體,即;Watermark_info結(jié)構(gòu)體。
S234:在執(zhí)行打印任務(wù)時(shí),從全局結(jié)構(gòu)體中取出水印信息。
也即,所謂的實(shí)時(shí)獲取水印信息是指,當(dāng)打印電子版文檔時(shí),稱打印一次電子文檔為一個(gè)任務(wù),那么每有一個(gè)任務(wù)要執(zhí)行時(shí),打印系統(tǒng)中存放水印信息的全局變量便會更新一次,所以每次打印的文檔添加的水印信息都是最新的,所以稱為實(shí)時(shí)獲取。
與實(shí)時(shí)獲取水印信息相配合的是,后期這種打印系統(tǒng)會設(shè)計(jì)成通用化階段,所謂通用化階段是指:此種打印系統(tǒng)會有界面管理的功能,各購買公司可以點(diǎn)擊添加的水印信息的按鈕,進(jìn)行水印信息種類的選擇。
因此,就目前這種定制化的系統(tǒng)來說,當(dāng)確定好系統(tǒng)要添加的水印信息類型時(shí),比如說:時(shí)間和特殊字節(jié),那么添加的水印信息內(nèi)容對時(shí)間的獲取和特殊字節(jié)都是打印系統(tǒng)自動(dòng)實(shí)時(shí)更新的,不用人工進(jìn)行手工輸入水印信息,添加的水印信息準(zhǔn)確無誤,并且節(jié)省了工作時(shí)間,提高了工作效率。
本發(fā)明中,優(yōu)選在二值化處理過程中,以數(shù)字1表示黑色,以數(shù)字0表示白色。
本發(fā)明中,生成的watermark-pdf文件,優(yōu)選水印信息的表現(xiàn)形式是黑白點(diǎn),即當(dāng)讀取散列坐標(biāo)矩陣C對應(yīng)的二值化數(shù)據(jù)為1時(shí),在矩陣C對應(yīng)的坐標(biāo)生成一個(gè)黑點(diǎn);當(dāng)讀取散列矩陣對應(yīng)的二值化數(shù)據(jù)為0時(shí),在矩陣C對應(yīng)的坐標(biāo)生成一個(gè)白點(diǎn)。
本發(fā)明提供的水印添加方法,只變更了打印過程中的中間過程,并沒有更改打印過程的流程邏輯。
圖5為根據(jù)本發(fā)明的實(shí)施例的水印識別流程圖;如圖所示,本發(fā)明的一實(shí)施例中,在打印過程中對文檔進(jìn)行水印識別的方法,包括如下步驟:
S31:將添加好的水印紙質(zhì)版文檔進(jìn)行掃描,生成例如為jpg格式的掃描件,這里命名為scan-watermark;
S32:對scan-watermark文件的興趣區(qū)域進(jìn)行定位角點(diǎn)的識別,并記錄下識別坐標(biāo),形成3*2矩陣B;
S33:根據(jù)print-src-pdf文件的長和寬,制定一個(gè)3*2定位點(diǎn)坐標(biāo)矩陣A,在此為標(biāo)準(zhǔn)pdf 3*2定位點(diǎn)坐標(biāo)矩陣A;
S34:把3*2定位點(diǎn)坐標(biāo)矩陣A升級成3*3的矩陣A1,把3*2矩陣B升級成3*3的矩陣B1;
S35:根據(jù)A1矩陣與B1矩陣,求出中間轉(zhuǎn)換矩陣X,此時(shí)X為3*3的變換矩陣;
S36:把n*2散列坐標(biāo)矩陣C升級成n*3的矩陣C1,根據(jù)C1與X求出掃描件中的水印坐標(biāo)D;
S37:取出D的n*2階矩陣,得到水印點(diǎn)在掃描件中的精確坐標(biāo),一一識別D中坐標(biāo),還原成二值化字符串?dāng)?shù)據(jù),進(jìn)而還原成原始水印信息。
已知標(biāo)準(zhǔn)PDF定位點(diǎn)3*2矩陣A與水印識別的定位點(diǎn)3*2矩陣B,那么根據(jù)矩陣公式AX=B,可求出中間轉(zhuǎn)換矩陣X。根據(jù)數(shù)學(xué)的矩陣知識則可知,X為一個(gè)2*2的矩陣。此法求出的X是錯(cuò)誤的。因?yàn)閷Ρ葤呙杓械乃↑c(diǎn)與標(biāo)準(zhǔn)紙質(zhì)版文件中的水印點(diǎn),它一方面發(fā)生了旋轉(zhuǎn)變化,另外一方面 同時(shí)還發(fā)生了平移。X矩陣是一個(gè)2*2的矩陣,它只能描述定位點(diǎn)發(fā)生的旋轉(zhuǎn)變化,卻不能包含平移的變化。因此,本發(fā)明通過先分別先將矩陣A和矩陣B升級,再求出中間轉(zhuǎn)換矩陣X,此中間轉(zhuǎn)換矩陣X的前兩維描述了旋轉(zhuǎn)的角度,后一維描述了平移的距離。因此,本發(fā)明提供的水印識別方法,具有高精準(zhǔn)定位、抗旋轉(zhuǎn)、抗平移與識別結(jié)果準(zhǔn)確等效果。同時(shí),可以在散列坐標(biāo)矩陣發(fā)生了旋轉(zhuǎn)又發(fā)生平移后能夠精準(zhǔn)找到其實(shí)際坐標(biāo)矩陣,也即水印坐標(biāo)D。
本發(fā)明中,優(yōu)選通過Opencv的角點(diǎn)識別技術(shù)對掃描件進(jìn)行定位角點(diǎn)識別。
本發(fā)明中,優(yōu)選興趣區(qū)域?yàn)樗〖堎|(zhì)版文檔的左上角、右上角與左下角區(qū)域。
本發(fā)明中,優(yōu)選所述步驟S33中,定點(diǎn)坐標(biāo)矩陣A中的三個(gè)坐標(biāo)點(diǎn)分別為左上角、右上角與左下角。
本發(fā)明中,優(yōu)選所述步驟S34中,把3*2定位點(diǎn)坐標(biāo)矩陣A升級成3*3的矩陣A1以及把3*2矩陣B升級成3*3的矩陣B1的過程中,填充的數(shù)字均為1。
本發(fā)明中,優(yōu)選所述步驟S37中,利用Opencv中的像素識別技術(shù)對D中坐標(biāo)進(jìn)行識別。
以下通過一較佳的具體實(shí)施例,進(jìn)一步論證本發(fā)明的技術(shù)方案極其有益效果:
具體的操作環(huán)境如下:
硬件平臺為:電腦及配套設(shè)施、HPlaserJet打印機(jī)1010、紫光掃描儀。
軟件平臺為:linux操作系統(tǒng)、cups打印系統(tǒng)及配套、openoffice辦公軟件。
這里以添加一個(gè)固定字符串Hello為例,打印的電子文檔可任意,以一個(gè)空白pdf電子文檔進(jìn)行說明:
1)截取打印系統(tǒng)cups接收辦公軟件傳來的數(shù)據(jù),生成/var/spool/cups/print-src文檔,進(jìn)而轉(zhuǎn)化成print-src-pdf。
2)把要添加的水印信息二值化處理,即01表示的這種形式。比如說H的這個(gè)字符01001000,那么在表示的時(shí)候,也就是加水印的時(shí)候,如果說是1的時(shí)候就打印成黑點(diǎn),而0的時(shí)候就打印成白點(diǎn)。比如說本例,三個(gè)定位點(diǎn)坐標(biāo)為(20,80)(560,80)(20,820),也就是文檔的左上角、右上角和左下角(文檔以左上角為坐標(biāo)原點(diǎn))。就是在文檔的三個(gè)角打上黑點(diǎn)。
3)添加水印信息,將Hello單詞轉(zhuǎn)化的二值化字符串,以第一個(gè)水印添加的點(diǎn)坐標(biāo)是(15,800),每行添加四個(gè)水印點(diǎn),距離為20,下一行的起始點(diǎn)為(15,780)依次類推,進(jìn)行水印點(diǎn)的添加。這里的散列矩陣,我把它做成一個(gè)簡單有規(guī)律可循的矩陣形式。生成watermark-pdf。
4)將print-src文件與watermark-pdf文件生成watermark-print-pdf。然后把watermark-print-pdf文件轉(zhuǎn)換成和print-src原始類型一樣的數(shù)據(jù),返回給打印系統(tǒng),繼續(xù)打印則好。
水印識別:
1)運(yùn)用opencv角點(diǎn)識別技術(shù)對圖片的定位點(diǎn)進(jìn)行識別,識別出的坐標(biāo)把它做成一個(gè)矩陣命名為B為把標(biāo)準(zhǔn)PDF文件的三個(gè)定位點(diǎn)寫 成A矩陣
2)對A和B矩陣進(jìn)行升級,A1矩陣為B1矩陣為
3)根據(jù)矩陣公式A1X=B1,求出X中間轉(zhuǎn)換矩陣,然后把水印矩陣乘以X,則得到圖片中的水印點(diǎn)矩陣。
4)運(yùn)用opencv里面的像素識別技術(shù),識別圖片中水印坐標(biāo)的像素值,那么就可以知道這個(gè)點(diǎn)是黑的還是白。黑的記為1,白的記為0,那么按照添加水印的散列矩陣一個(gè)個(gè)的識別出來,形成二值化字符串,進(jìn)而在還原成水印信息,達(dá)到水印的識別效果。水印信息
本發(fā)明中的上述實(shí)施例中,以將特定文件轉(zhuǎn)換成pdf格式為例進(jìn)行說明,然而實(shí)際操作中,也可以轉(zhuǎn)換成jpg格式,同樣可以實(shí)現(xiàn)使添加的水印信息具有可知性、不易讀性和強(qiáng)抗干擾能力以及在對水印進(jìn)行識別時(shí),具有高精準(zhǔn)定位、抗旋轉(zhuǎn)、抗平移與識別結(jié)果精確的效果,本發(fā)明不加以限制。
本發(fā)明中,上述出現(xiàn)的各技術(shù)用語表示的具體含義如下:
1.cups:通用Unix打印系統(tǒng)(Common UNIX Printing System),為Unix/Linux操作系統(tǒng)打印提供了一個(gè)比較完整的打印解決方案。它使用IPP互聯(lián)網(wǎng)打印協(xié)議(Internet Printing Protocol)來管理打印工作及隊(duì)列,同時(shí)支持LPD行式打印機(jī)后臺程序(Line Printer Daemon)和SMB服務(wù)器信息塊(Server Message Block)以及AppSocket等通信協(xié)議。
2.PS流和PDF流:PS流是讀取PostScript語言文件過程中的流數(shù)據(jù),PostScript語言是一種與設(shè)備無關(guān)的打印機(jī)頁面描述語言。它對文本和圖形實(shí)行同樣的處理過程,給處理字體和圖片帶來了極大的靈活性。PDF流是讀取pdf格式文檔的流數(shù)據(jù)。
3.Ghostscript:是一套建基于Adobe、PostScript及可移植文檔格式(PDF)的頁面描述語言等而編譯成的免費(fèi)軟件。能夠把PS流和PDF流等數(shù)據(jù)轉(zhuǎn)換成打印機(jī)能直接打印的語言,也可把一種文件轉(zhuǎn)換成另外一種文件格式(如把jpg格式轉(zhuǎn)換成pdf格式)。
4.二值化:也稱為黑白化。就是將灰度值設(shè)置為0或255,使得僅有黑和白兩種情況,本專利中把黑記為1,白記為零。
5.水印的各種性質(zhì):
魯棒性:魯棒為堅(jiān)固的意思,是指在經(jīng)歷多種無意或有意的信號攻擊過程后,添加的水印仍能保持完整性或部分完整性并能被準(zhǔn)確鑒別。
隱蔽性:又稱不可知性,是指添加的水印在普通視覺條件下不可見。
可知性:是指水印在通常的視覺條件下是可見的。
易讀性:是指人可輕易的識別出水印信息內(nèi)容。
嵌入容量:是指載體在不發(fā)生形變的前提下可嵌入的水印信息量。
6.水印識別的各種性質(zhì):
抗旋轉(zhuǎn)性:是指允許水印旋轉(zhuǎn)一定的角度,不影響其識別結(jié)果。
抗平移性:是指允許水印平移一定的距離,不影響其識別結(jié)果。
綜上,本發(fā)明所能實(shí)現(xiàn)的有益效果是:
1.通過在文檔打印過程中,實(shí)時(shí)動(dòng)態(tài)地獲取添加水印信息,自動(dòng)化的進(jìn)行水印添加,提高了企業(yè)對文檔添加水印的添加效率,降低了工作成本。
2、通過對水印信息進(jìn)行二值化處理,使添加的水印信息具有可知性、不易讀性和強(qiáng)抗干擾能力,能更有效地起到保護(hù)企業(yè)信息以及文檔的版權(quán)所有等功能。
3、通過對矩陣A和矩陣B先升級再計(jì)算中間變換矩陣,使得本發(fā)明在對水印進(jìn)行識別的時(shí)候,具有高精準(zhǔn)定位、抗旋轉(zhuǎn)、抗平移與識別結(jié)果精確的優(yōu)點(diǎn)。
綜上,本發(fā)明提供的在打印過程中對文檔進(jìn)行水印添加與水印識別的方法,一方面能節(jié)省公司非自動(dòng)化添加水印的時(shí)間,同時(shí)又能保證實(shí)時(shí)動(dòng)態(tài)的更新水印信息,有效提高了辦公效率。另一方面,文檔水印的添加起到了對文檔監(jiān)視、文檔真?zhèn)舞b別和版權(quán)保護(hù)的功能,能更為有效的防范企業(yè)內(nèi)部文檔的惡意傳播與保護(hù)版權(quán)所有問題。同時(shí)給出了應(yīng)用這種智能化水印添加方法打印出的文檔掃描件的高精準(zhǔn)定位和抗旋轉(zhuǎn)、抗平移干擾能力的水印識別技術(shù)。
雖然本發(fā)明已利用上述較佳實(shí)施例進(jìn)行說明,然其并非用以限定本發(fā)明的保護(hù)范圍,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍之內(nèi),相對上述實(shí)施例進(jìn)行各種變動(dòng)與修改仍屬本發(fā)明所保護(hù)的范圍,因此本發(fā)明的保護(hù)范圍以權(quán)利要求書所界定的為準(zhǔn)。