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