印序列。
[0057] 6、所述的"讀取鏈表內節(jié)點元素,按照兩個節(jié)點為一組進行分組"的步驟中,如前 所述,自頭指針開始,將具有聯(lián)接關系的兩個相鄰元素分為一組。如圖3所示,每一條取線 都包含著若干由分組元素組成的微小直線。環(huán)形區(qū)域的設計同樣如此。
[0058] 7、所述的水印嵌入步驟中,如圖2和圖3所示,根據分組元素a,b的坐標值 (xa,ya),(xb,yb),定義& 為取得中點坐標。若待嵌入的水印值為1, 則在a,b之間增加一個冗余節(jié)點(X。,y。);如果水印值為0,則跳過此步驟,不在在a,b之間 插入節(jié)點。這樣既確保了水印相當容量,又減弱了對地圖數(shù)據規(guī)模的過度增加。
[0059] 8、所述的構建密鑰的步驟中,根據每次水印嵌入的頂點和分組情況標記頂點ID, 構建二維矩陣,存儲并將其作為提取密鑰保存下來。
[0060] 9、所述的提取水印的步驟中,利用密鑰矩陣,得到關鍵頂點的鏈表。根據兩個相鄰 頂點是否存在一個中間節(jié)點,來判斷提取比特值1,反之,提取比特值〇,以此類推,對提取 的水印編碼重新組合。
[0061] 10、所述的水印驗證相似度比較的步驟中,對于檢測到的水印標識Wt由于載體地 圖受到攻擊,會造成部分信息位丟失,造成1與原水印W內容不一致。對此,提出一種基于 相似度的水印檢測方式。
[0062]
[0063] 公式中,W為原始水印,Wt為檢測出的水印。N為水印容量。
[0064] 檢測閾值的取值一般在0. 6到0. 7之間,也就是0. 6彡Sim(W,Wt)彡0. 7時,滿足 完整性要求,將得到的嵌入水印信息的海圖文件輸出。
[0065] 本發(fā)明提出的是一種基于空間冗余關系的電子海圖水印方法。(1)讀取電子海圖 文件,讀取地圖頂點的空間位置關系;(2)以線、面連接關系為對象,將頂點序列存儲為鏈 表結構;(3)掃描水印位圖并將其轉換為二值序列;(4)按順序讀取水印信息,當水印比特 為1時,向鏈表內插入前后頂點的中間值,當水印比特為〇時,則跳過;(5)記錄嵌入順序, 構建提取密鑰;(6)利用密鑰,提取空間關系對象內的水印編碼;(7)根據二值水印序列和 水印位圖的大小,生成水印位圖。(8)計算檢測水印與原始水印的相似程度,為版權歸屬及 內容完整性提供判據。本發(fā)明實現(xiàn)了一種無損的水印嵌入方法,很好地保持了地圖空間位 置關系的完整性,適合電子海圖數(shù)據的分發(fā)使用,如圖4到圖6所示。
[0066] 其步驟包括:
[0067] (1)讀取海圖文件,確定所有頂點的空間位置關系,即獨立、在線上、在面上。讀取 海圖文件,由于海圖涉及大陸坐標系和海洋坐標系的融合,節(jié)點的空間關系相對復雜。
[0068] (2)對于在線上以及圍繞成環(huán)狀的頂點集合,將其按照連接關系存儲為鏈表結構。 以拓撲空間關系為對象,考慮線上的節(jié)點連接,以及區(qū)域形式的閉環(huán)連接,將具有連接關系 的節(jié)點以鏈表形式存儲。
[0069] (3)根據水印位圖信息,轉換為二進制的水印字符串。將水印位圖圖像,轉換為二 進制編碼,并計算嵌入容量
[0070] (4)讀取鏈表內節(jié)點元素,并按照兩個節(jié)點為一組進行處理;結合冗余嵌入特點, 將鏈表內的元素,以每兩個相鄰的節(jié)點為一組,進行分組。
[0071] (5)對于每一個比特的水印編碼,順序提取分組對象的定義塊;針對分組,獲得每 個組內對象的數(shù)據塊,獲得坐標值。
[0072] (6)當水印值為1時,向分組對象內插入一新的元素,當水印值為0時,轉入下一步 驟;采用向鏈表內的分組嵌入冗余對象的方式嵌入水印信息。具體做法為:
[0073] 當水印比特值為1時,在分組元素的中心位置嵌入一個冗余節(jié)點;當水印比特值 為〇時,則跳過。
[0074] 根據處理后的鏈表和空間關系,重新生成地圖。
[0075] (7)構造可供水印提取的密鑰,將水印序列依次寫入載體對象內。將每次選擇的分 組對象ID組合為向量,并保存為水印提取的密鑰。
[0076] (8)根據提取密鑰,依次讀取二值水印序列?;诘貓D拓撲關系的不變性,根據提 取密鑰,重新提取節(jié)點鏈表并進行分組。當存在一個節(jié)點位于分組對象的中心位置時,則水 印提取為1 ;否則提取為〇.
[0077] (9)根據讀取的二值水印序列和水印位圖的大小,生成水印位圖,同原始水印,進 行比較和相似度計算。根據水印生成規(guī)則,轉換水印序列,并通過相似度計算,獲得與原始 水印的相似數(shù)據,確定水印的完整性。
【主權項】
1. 一種基于空間冗余關系的電子海圖水印方法,其特征在于:包括以下步驟, 步驟一:讀取海圖文件,確定所有頂點的空間位置關系,頂點的空間位置關系為獨立、 在線上或者在面上; 步驟二:對于在線上以及圍繞成環(huán)狀的頂點集合,將其按照連接關系存儲為鏈表; 步驟三:根據水印位圖信息,轉換為二進制的水印字符串; 步驟四:讀取鏈表內節(jié)點元素,并按照兩個相鄰節(jié)點為一組進行分組; 步驟五:對于每一個比特的水印編碼,順序提取分組,獲得每個分組內對象的數(shù)據塊, 進而獲得坐標值,采用向鏈表內的分組嵌入冗余對象的方式嵌入水印信息,得到嵌入水印 信息的海圖文件; 步驟六:構造可供水印提取的密鑰,根據每次水印嵌入的頂點和分組情況標記頂點ID,構建二維矩陣作為提取密鑰; 步驟七:根據提取密鑰,依次讀取二值水印序列; 步驟八:根據讀取二值水印序列,得到檢測水印位圖,同原始水印位圖進行比較,計算 相似度,如果相似度大于閾值,將步驟五中得到的嵌入水印信息的海圖文件輸出,如果相似 度小于閾值,不輸出海圖文件。2. 根據權利要求1所述的一種基于空間冗余關系的電子海圖水印方法,其特征在于: 所述的對于在線上以及圍繞成環(huán)狀的頂點集合,將其按照連接關系存儲為鏈表結構的方法 為: 對于任意節(jié)點Vi,Vj,若存在連接關系R,使得ViRVj成立,且V_jRVi=ViRVj,則得到鏈表L;= L ; U {v Vj}; 對于描述區(qū)域的連接關系Q,存在ViQvi+1Q...vi+niQvhQvi時,得到鏈表關系L;= L;U {v i, Vi + 1, . . . , Vi+n !, vn+1}; 若在關系R下,LinL盧①,且LinL.j=vm,LinLk=Vn,vmRvn成立,說明多條路線 之間存在公共頂點,貝定義新鏈表L' =1^(1 {vm,vn}; 若在Q關系下QnL,#〇,說明區(qū)域之間存在公共重疊的線路,得到新鏈表的連接關 系L-LjnLj〇3. 根據權利要求1所述的一種基于空間冗余關系的電子海圖水印方法,其特征在于: 所述的采用向鏈表內的分組嵌入冗余對象的方式嵌入水印信息的方法為: 分組元素a,b的坐標值(Xa,ya),(xb,yb),取得中點坐標為:莰入的水印值為1,則在a,b之間增加一個冗余節(jié)點 (X。,y。);如果水印值為0,不在a,b之間插入節(jié)點。4. 根據權利要求1所述的一種基于空間冗余關系的電子海圖水印方法,其特征在于: 所述的根據提取密鑰,依次讀取二值水印序列的操作為: 根據提取密鑰,得到關鍵頂點的鏈表,如果兩個相鄰頂點中存在一個中間節(jié)點,則提取 水印比特值為1,如果兩個相鄰頂點中無中間節(jié)點,則提取水印比特值為〇,得到二值水印 序列。5. 根據權利要求1所述的一種基于空間冗余關系的電子海圖水印方法,其特征在于: 所述的檢測水印位圖和原始水印位圖的相似度為:其中,W為原始水印,Wt為檢測出的水印,N為水印容量。
【專利摘要】本發(fā)明公開了一種基于空間冗余關系的電子海圖水印方法。讀取海圖文件,確定所有頂點的空間位置關系;對于在線上以及圍繞成環(huán)狀的頂點集合,將其按照連接關系存儲為鏈表;根據水印位圖信息,轉換為二進制的水印字符串;讀取鏈表內節(jié)點元素,并按照兩個相鄰節(jié)點為一組進行分組;對于每一個比特的水印編碼,順序提取分組,采用向鏈表內的分組嵌入冗余對象的方式嵌入水印信息;構造可供水印提取的密鑰;依次讀取二值水印序列;根據讀取二值水印序列,得到檢測水印位圖,同原始水印位圖進行比較,計算相似度,將嵌入水印信息的海圖文件輸出。本發(fā)明能夠保持電子海圖空間拓撲關系無損,有效抵抗非法復制,維護用戶版權。
【IPC分類】G06T1/00
【公開號】CN105023235
【申請?zhí)枴緾N201510400310
【發(fā)明人】孫建國, 李佳楠, 李博權
【申請人】哈爾濱工程大學
【公開日】2015年11月4日
【申請日】2015年7月9日