一種基于空間冗余關系的電子海圖水印方法
【技術領域】
[0001] 本發(fā)明屬于地圖學及地理信息科學的信息處理領域,尤其涉及一種基于空間冗余 關系的電子海圖水印方法。
【背景技術】
[0002] 電子海圖作為數(shù)字地圖的一部分,是近年來逐步受到廣泛重視的一種重要的地圖 資源,特別是隨著各國日益重視海洋資源的開發(fā)與利用,此外,其具有更加重要的戰(zhàn)略價 值。對于如此重要的數(shù)字資源,與之相對的卻是版權保護和信息安全技術的研究較為落后。 "一種用于海圖版權標識的小波域數(shù)字水印技術"和"雙特征下的二維電子海圖水印技術研 究"是目前可檢索到的有關電子海圖版權保護的文獻。電子海圖本質(zhì)上也是一種二維數(shù)字 地圖,故具有一定的通用性。而學界對于電子海圖的信息安全技術專門研究較少的原因有 兩個:一是海圖的自身價值較高,且制作及流通受到嚴格管理,很多研究人員苦于缺乏足夠 的資源,而無法開展深入研究;另一方面,由于該領域部分應用技術的敏感性,很多成果并 沒有得到及時發(fā)表。值得一提的是,隨著近年來電子海圖在商業(yè)領域的迅速應用,如何確保 電子海圖的版權和對電子海圖進行真?zhèn)舞b別已經(jīng)成為亟待解決的技術問題。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的是提供一種能保持電子海圖空間拓撲關系無損,并能有效抵抗非法 復制,維護用戶版權的,基于空間冗余關系的電子海圖水印方法。
[0004] 一種基于空間冗余關系的電子海圖水印方法,包括以下步驟,
[0005] 步驟一:讀取海圖文件,確定所有頂點的空間位置關系,頂點的空間位置關系為獨 立、在線上或者在面上;
[0006] 步驟二:對于在線上以及圍繞成環(huán)狀的頂點集合,將其按照連接關系存儲為鏈 表;
[0007] 步驟三:根據(jù)水印位圖信息,轉(zhuǎn)換為二進制的水印字符串;
[0008] 步驟四:讀取鏈表內(nèi)節(jié)點元素,并按照兩個相鄰節(jié)點為一組進行分組;
[0009] 步驟五:對于每一個比特的水印編碼,順序提取分組,獲得每個分組內(nèi)對象的數(shù)據(jù) 塊,進而獲得坐標值,采用向鏈表內(nèi)的分組嵌入冗余對象的方式嵌入水印信息,得到嵌入水 印信息的海圖文件;
[0010] 步驟六:構造可供水印提取的密鑰,根據(jù)每次水印嵌入的頂點和分組情況標記頂 點ID,構建二維矩陣作為提取密鑰;
[0011] 步驟七:根據(jù)提取密鑰,依次讀取二值水印序列;
[0012] 步驟八:根據(jù)讀取二值水印序列,得到檢測水印位圖,同原始水印位圖進行比較, 計算相似度,如果相似度大于閾值,將步驟五中得到的嵌入水印信息的海圖文件輸出,如果 相似度小于閾值,不輸出海圖文件。
[0013] 本發(fā)明一種基于空間冗余關系的電子海圖水印方法,還可以包括:
[0014] 1、對于在線上以及圍繞成環(huán)狀的頂點集合,將其按照連接關系存儲為鏈表結(jié)構的 方法為:
[0015] 對于任意節(jié)點Vi, ',若存在連接關系R,使得ViRVj成立,且vviRVj,則得到 鏈表Li=L七{vi,v』;
[0016] 對于描述區(qū)域的連接關系Q,存在ViQvi+1Q. . .vi+niQVhQv^,得到鏈表關系L;= L;U{vvi+1, . . . ,vi+n !,vn+1};
[0017] 若在關系R下,Li門L.j辛①,且L;門L.j=vm,LpLk=vn,vmRvn成立,說明多條 路線之間存在公共頂點,貝lj定義新鏈表L' =1^(1 {vm,vn};
[0018] 若在Q關系下QnL 〇,說明區(qū)域之間存在公共重疊的線路,得到新鏈表的連 接關系L' =QnL
[0019] 2、采用向鏈表內(nèi)的分組嵌入冗余對象的方式嵌入水印信息的方法為:
[0020] 分組元素a,b的坐標值(xa,ya),(xb,yb),取得中點坐標為:
待嵌入的水印值為1,則在a,b之間增加一個冗余節(jié)點(x^y。); 如果水印值為〇,不在a,b之間插入節(jié)點。
[0021] 3、根據(jù)提取密鑰,依次讀取二值水印序列的操作為:
[0022] 根據(jù)提取密鑰,得到關鍵頂點的鏈表,如果兩個相鄰頂點中存在一個中間節(jié)點,則 提取水印比特值為1,如果兩個相鄰頂點中無中間節(jié)點,則提取水印比特值為〇,得到二值 水印序列。
[0023]4、檢測水印位圖和原始水印位圖的相似度為:
[0026] 其中,W為原始水印,Wt為檢測出的水印,N為水印容量。
[0027] 有益效果:
[0028] 本發(fā)明實現(xiàn)了一種無損的水印嵌入方法,很好地保持了地圖空間位置關系的完整 性,適合電子海圖數(shù)據(jù)的分發(fā)使用。本發(fā)明提供一種能保持電子海圖空間拓撲關系無損,并 能有效抵抗非法復制,維護用戶版權的基于空間冗余關系的水印方法。根據(jù)水印生成規(guī)則, 轉(zhuǎn)換水印序列,并通過相似度計算,獲得與原始水印的相似數(shù)據(jù),確定水印的完整性。
【附圖說明】
[0029] 圖1本發(fā)明方法的整體流程圖;
[0030] 圖2空間冗余的水印嵌入方法;
[0031] 圖3水印嵌入示意圖;
[0032] 圖4水印嵌入前后的情況對比;圖4(a)嵌入水印前的海圖;圖4(b)嵌入水印后的 海圖;
[0033] 圖5水印嵌入位置的部分解析;
[0034] 圖6嵌入的水印位圖。
【具體實施方式】
[0035] 下面將結(jié)合附圖對本發(fā)明做進一步詳細說明。
[0036] 1、本發(fā)明的目的是這樣實現(xiàn)的:包括水印的嵌入和提取,其步驟包括:如圖1所示
[0037] (1)讀取海圖文件,確定所有頂點空間位置關系。
[0038] (2)對于線上以及環(huán)狀頂點集合,將其按照連接關系存儲為鏈表結(jié)構。
[0039] (3)將水印位圖轉(zhuǎn)換為二進制字符串。
[0040] (4)讀取鏈表內(nèi)節(jié)點元素,按照兩個節(jié)點為一組進行分組。
[0041] (5)對于每一個比特的水印編碼,順序提取分組對象的定義塊。
[0042] (6)當水印值為1時,向分組對象內(nèi)插入一新的元素,當水印值為0時,轉(zhuǎn)入下一步 驟。
[0043] (7)構造可供水印提取的密鑰,將水印序列依次寫入載體對象內(nèi)。
[0044] (8)根據(jù)提取密鑰,依次讀取二值水印序列。
[0045] (9)根據(jù)讀取的二值水印序列和水印位圖的大小,生成水印位圖,同原始水印,進 行比較和相似度計算。
[0046] 本發(fā)明還可以包括:
[0047] 2、所述的"讀取海圖文件,確定所有頂點空間位置關系"的步驟中,對于電子海圖 來說,也符合矢量數(shù)據(jù)結(jié)構的組織特點,故所有頂點的數(shù)據(jù)組織形式包括了對象定義信息、 對象屬性信息以及對象描述信息等內(nèi)容。對于任意頂點v來說,都需要通過確定頂點ID,獲 得對象定義信息,并間接讀取對象屬性信息內(nèi)的對象名稱和空間位置,所謂對象的空間位 置即頂點v的二維坐標(vx,vy)。
[0048] 3、所述的"對于線上以及環(huán)狀頂點集合,將其按照連接關系存儲為鏈表結(jié)構"步驟 中,規(guī)則如下:
[0049] 對于任意鏈表L;,其表內(nèi)元素應是{vdv2, . . .,'},即順序連接的節(jié)點。
[0050] 對于海圖V來說,其可能包含陸地信息,但必包含海洋航行信息,故關鍵性地理節(jié) 點之間的連接可能是航路、島礁等關鍵信息。
[0051] 為此,對于任意節(jié)點Vi,Vj,若存在連接關系R,使得ViRVj成立,且vv貝lj LfLiU{v^Vj},即所定義的鏈表。
[0052] 同理,對于一個描述區(qū)域的連接關系Q來說,必然存在ViQvi+1Q. . .vi+n 立,此時,Li=L;U{v;,vi+1,. . .,vi+nvn+1},即所定義的鏈表關系。
[0053] 進一步地,如圖1所示,若在關系R下,Q門L.j乒〇,且L;門L.j=vm,Q門Lk= vn,vmRvn成立,說明多條路線之間存在公共頂點,則定義L' =L;fl{vm,vn},即所定義的新 鏈表。
[0054] 同理,如圖2所示,若在Q關系下QnLj# 說明區(qū)域之間存在公共重疊的線 路,則定義L'iQnL,。L'代表了海圖內(nèi)性關鍵的連接關系。
[0055]關鍵頂點和關鍵路線共同組成了供水印嵌入的鏈表。
[0056] 5、所述的"將水印位圖轉(zhuǎn)換為二進制字符串"步驟中,對水印位圖進行逐行掃描, 得出一串二值水