二維cad工程圖的可逆水印方法、水印嵌入和水印提取方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息安全領(lǐng)域,特別是一種二維CAD工程圖的可逆水印方法、水印嵌入 和水印提取方法。
【背景技術(shù)】
[0002] 隨著信息技術(shù)的發(fā)展,圖像、視頻等數(shù)字多媒體作品的拷貝、修改、傳播變得非常 容易,這給數(shù)字多媒體帶來極大便利的同時,其內(nèi)容保護(hù)和版權(quán)認(rèn)證也成為亟待解決的問 題。數(shù)字水印技術(shù)作為一種版權(quán)保護(hù)和內(nèi)容認(rèn)證的手段,近年來在數(shù)字圖像領(lǐng)域得到一定 的發(fā)展。傳統(tǒng)的水印方法會使原始的圖形數(shù)據(jù)永久的失真,然而,在很多特殊的應(yīng)用場合, 如醫(yī)學(xué)、司法、軍事等,對數(shù)字媒體本身的完整性、真實(shí)性要求很高,任何因?yàn)樗∏度胍?的數(shù)據(jù)精度的失真是不允許的。因此,可逆水印技術(shù)的出現(xiàn)很好地滿足了這類應(yīng)用的需求。 可逆水印技術(shù)又稱為無損數(shù)據(jù)隱藏,是指能夠完整恢復(fù)原始載體數(shù)據(jù)的水印算法。目前可 逆水印技術(shù)的研究主要集中在柵格圖像領(lǐng)域,主要利用差值擴(kuò)展,直方圖變換和無損壓縮 等方法改變圖像的像素值嵌入水印信息。針對矢量數(shù)據(jù)的可逆水印方法研究則相對較少, 而已有的可逆水印算法大多針對數(shù)據(jù)相關(guān)性較高的圖像載體,當(dāng)圖像數(shù)據(jù)相關(guān)性較低時, 水印容量和圖像質(zhì)量均無法保證。
[0003] 二維CAD工程圖作為矢量圖形的一種,因具有數(shù)據(jù)精度高、可無損縮放和易于存儲 等特點(diǎn),在工程設(shè)計(jì)行業(yè)中得到了廣泛應(yīng)用。然而,這些工程圖形的數(shù)據(jù)相關(guān)性較低,已有 的可逆水印方案大部分無法直接應(yīng)用到二維CAD工程圖領(lǐng)域,少數(shù)能用于二維CAD工程圖的 方法,存在水印容量低、嵌入水印后圖形質(zhì)量不佳的問題。因此,尋找一種新型的獨(dú)立于載 體相關(guān)性的可逆水印方案來進(jìn)一步擴(kuò)大可逆數(shù)字水印技術(shù)的應(yīng)用范圍,實(shí)現(xiàn)二維CAD工程 圖的版權(quán)保護(hù)和內(nèi)容認(rèn)證功能,已成為目前研究工作的重點(diǎn)。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的技術(shù)問題是,針對現(xiàn)有技術(shù)不足,提供一種二維CAD工程圖的可 逆水印方法、水印嵌入和水印提取方法。
[0005] 為解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是:一種二維CAD工程圖虛擬坐標(biāo) 迭代嵌入的大容量可逆水印方法,包括水印嵌入部分、水印提取部分;
[0006] 所述水印嵌入部分包括以下步驟:
[0007] 1)遍歷二維工程圖形G中所有實(shí)體的所有頂點(diǎn)坐標(biāo),得到一組二維頂點(diǎn)坐標(biāo)集合V ={Vi,V2,…,Vi···,Vn};獲取V中各頂點(diǎn)橫坐標(biāo)的最大值X·和最小值x min作為參考坐標(biāo)點(diǎn);i e [1,n],n為二維工程圖形G中所有實(shí)體的所有頂點(diǎn)總數(shù);
[0008] 2)對參考坐標(biāo)點(diǎn)外的任一坐標(biāo)的橫坐標(biāo)Xi,根據(jù)水印嵌入位置調(diào)節(jié)該橫坐標(biāo)小數(shù) 點(diǎn)的位置,得到實(shí)際橫坐標(biāo)X' i = Xi X 1〇Ρ,P《Pmax ;計(jì)算X' i的左、右虛擬橫坐標(biāo)4、JC丨;其中 4 Sx丨<xf {^^表示坐標(biāo)小數(shù)點(diǎn)后的最大有效位數(shù);P為水印嵌入位置參數(shù);
[0009] 3)將實(shí)際橫坐標(biāo)和虛擬橫坐標(biāo)構(gòu)成的有序數(shù)據(jù)集作為水印載體,計(jì)算其均值 m -.m = (x\ +^ + ^)/3:
[0010] 4)根據(jù)均位所和待嵌入的水印信息^,修改實(shí)際橫坐標(biāo)A實(shí)現(xiàn)水印嵌入,嵌入水
;其中&表示水印嵌入的變形參數(shù);;
[0011] 5)更新嵌入水印后的橫坐標(biāo):/ 1(Τ ;
[0012] 6)重復(fù)上述步驟2~5),得到參考坐標(biāo)點(diǎn)外所有坐標(biāo)嵌入水印后的橫坐標(biāo);
[0013] 7)保存嵌入水印后的頂點(diǎn)坐標(biāo)Vw,得到嵌入水印后的二維工程圖形Gw;所述水印提 取部分包括以下步驟:
[0014] 1)遍歷嵌入水印后二維工程圖形Gw中所有實(shí)體的所有頂點(diǎn)坐標(biāo),得到一組二維頂 點(diǎn)坐標(biāo)集合V w= {V,,V2W,…Viw,…Vnw};獲取V w中各頂點(diǎn)橫坐標(biāo)的最大值.和最小值 作為參考坐標(biāo)點(diǎn);
[0015] 2)對除參考坐標(biāo)點(diǎn)外的任一橫坐標(biāo)if,根據(jù)水印嵌入位置調(diào)節(jié)該橫坐標(biāo)小數(shù)點(diǎn) 的位置,得到實(shí)際橫坐標(biāo):X廠=< X10P,p S
[0016] 3)計(jì)算均值歷' :/7Γ = (.τ;' +.Y,:W +<)/3 ;
[0017] 4)比較實(shí)際橫坐標(biāo)xf和均值if的大小,確定水印信息并恢復(fù)實(shí)際橫坐標(biāo)X' i:
[0020] 5)更新提取水印后的橫坐標(biāo),恢復(fù)橫坐標(biāo)i/10P;
[0021] 6)保存提取水印后的頂點(diǎn)坐標(biāo)V,即得到原始二維工程圖形G;
[0022] 同理,采用同樣的方法實(shí)現(xiàn)縱坐標(biāo)的水印嵌入和水印提取。
[0023] 優(yōu)選地,本發(fā)明的虛擬橫坐標(biāo)<、X;'的計(jì)算公式如下:
[0025]其中,0 < Uxi < Dx_l,Dx > 2 ; lt = (Xmax-XmirO/DxJ' min = XminX lO^X' i 關(guān) X' ??η,Χ' i 關(guān) X、ax;X、ax = XmaxX 10P; L」表示向下取整。該虛擬橫坐標(biāo):Xi的計(jì)算公式簡單,計(jì)算量小,容 易實(shí)現(xiàn)。
[0026 ]優(yōu)選地,本發(fā)明的變形參數(shù)Q滿足:Q'<Q<Q";其中,Q'<min(Q(o)i|i = l,~n); Q" >max(Q(c)i | i = l,···η);
[0027] Q{ο). < min | (.r,f + /. - x') / 3, (x; + /. - x') / 3 ^
[0028] G(c}'> max!(2.r;-xi -<)/6,(彳+.r; -2x)/6丨。本發(fā)明變形參數(shù)的選擇方法可 以有效防止水印嵌入過程中的數(shù)據(jù)溢出和水印提取過程中的數(shù)據(jù)溢出,能最大程度地減少 水印嵌入后圖像的失真,同時能有效保證水印的正確提取。
[0029]本發(fā)明中,P的取值為3或4,確保水印嵌入有較好的不可見性。
[0030] 本發(fā)明的二維CAD工程圖虛擬坐標(biāo)迭代嵌入的大容量水印嵌入方法包括以下步 驟:
[0031] 1)遍歷二維工程圖形G中所有實(shí)體的所有頂點(diǎn)坐標(biāo),得到一組二維頂點(diǎn)坐標(biāo)集合V ={V!,V2,…,Vi···,Vn};獲取V中各頂點(diǎn)橫坐標(biāo)的最大值X·和最小值x min作為參考坐標(biāo)點(diǎn);i e [1,n],n為二維工程圖形G中所有實(shí)體的所有頂點(diǎn)總數(shù);
[0032] 2)對參考坐標(biāo)點(diǎn)外的任一坐標(biāo)的橫坐標(biāo)Xi,根據(jù)水印嵌入位置調(diào)節(jié)該橫坐標(biāo)小數(shù) 點(diǎn)的位置,得到實(shí)際橫坐標(biāo)X' i = xi X 1〇Ρ,P《Pmax;計(jì)算X' i的左、右虛擬橫坐標(biāo)乂、<,;其中 xi 丨示坐標(biāo)小數(shù)點(diǎn)后的最大有效位數(shù);P為水印嵌入位置參數(shù);
[0033] 3)將實(shí)際橫坐標(biāo)Vi和虛擬橫坐標(biāo)構(gòu)成的有序數(shù)據(jù)集作為水印載體,計(jì)算其均值 Μ ; m ^ (x' + x' + x;') / 3 ;
[0034] 4)根據(jù)均值兩和待嵌入的水印信息Wl,修改實(shí)際橫坐標(biāo)實(shí)現(xiàn)水印嵌入,嵌入水
[0035] 5)更新嵌入水印后的橫坐標(biāo):<
[0036] 6)重復(fù)上述步驟2~5),得到參考坐標(biāo)點(diǎn)外所有坐標(biāo)嵌入水印后的橫坐標(biāo);
[0037] 7)保存嵌入水印后的頂點(diǎn)坐標(biāo)Vw,得到嵌入水印后的二維工程圖形Gw。相應(yīng)地,本 發(fā)明的二維CAD工程圖虛擬坐標(biāo)迭代嵌入的大容量水印提取方法包括以下步驟:
[0038] 1)遍歷上述嵌入水印后的二維工程圖形Gw中所有實(shí)體的所有頂點(diǎn)坐標(biāo),得到一組 二維頂點(diǎn)坐標(biāo)集合Vw= {V,,V2W,…Viw,…Vnw};獲取V w中各頂點(diǎn)橫坐標(biāo)的最大值Χ:χ和最小 值·^^作為參考坐標(biāo)點(diǎn);
[0039] 2)對除參考坐標(biāo)點(diǎn)外的任一橫坐標(biāo)根據(jù)水印嵌入位置調(diào)節(jié)該橫坐標(biāo)小數(shù)點(diǎn) 的位置,得到實(shí)際橫坐標(biāo):礦=彳xKf,# ;
[0040] 3)計(jì)算均值m': = (.< +.<' +.Y:")/3 :
[0041 ] 4)比較實(shí)際橫坐標(biāo)和均值的大小,確定水印信息并恢復(fù)實(shí)際橫坐標(biāo)X' i:
[0044] 5)更新提取水印后的橫坐標(biāo),恢復(fù)橫坐標(biāo)i/10P;
[0045] 6)保存水印提取后的頂點(diǎn)坐標(biāo)V,即得到原始二維工程圖形G;
[0046] 同理,采用同樣的方法實(shí)現(xiàn)縱坐標(biāo)的水印嵌入和水印提取。
[0047] 與現(xiàn)有技術(shù)相比,本發(fā)明所具有的有益效果為:本發(fā)明通過對工程圖頂點(diǎn)坐標(biāo)構(gòu) 造虛擬坐標(biāo)點(diǎn)提高數(shù)據(jù)間的相關(guān)性,保證嵌入水印和提取水印后,原始圖形變化較小;參考 坐標(biāo)點(diǎn)外的任一坐標(biāo)點(diǎn)都能作為水印載體,并且在多層嵌入水印的情況下引入的失真仍能 控制在有限的范圍內(nèi)。理論分析和實(shí)驗(yàn)結(jié)果均表明該方法有效地解決了二維工程圖水印容 量低、嵌入水印后圖形質(zhì)量不佳的問題,適用于對數(shù)據(jù)精度要求較高的二維CAD工程圖形的 水印嵌入和提取。
【附圖說明】
[0048]圖1為本發(fā)明方法流程圖;
[0049]圖2(a)~圖2(c)分別為工程圖形G1的原始圖形、嵌入水印圖形、提取水印后的圖 形;
[0050] 圖3為本發(fā)明不可見性與嵌入位置關(guān)系圖;
[0051] 圖4(a)~圖4(c)分別為工程圖形G2在迭代次數(shù)分別為1=13 = 23 = 3時圖形的 不可見性;
[0052] 圖5為本發(fā)明不可見性與迭代次數(shù)關(guān)系圖。
【具體實(shí)施方式】
[0053] 本發(fā)明具體實(shí)現(xiàn)過程包括:構(gòu)造虛擬坐標(biāo)點(diǎn)、水印嵌入、水印提取,其流程圖如圖1 所示。
[0054] 構(gòu)造虛擬坐標(biāo)點(diǎn):
[0055]步驟1:遍歷二維CAD工程圖所有實(shí)體的所有頂點(diǎn)坐標(biāo)值,分別選取X軸上坐標(biāo)的最 小值Xmin和最大值Xmx作為參考坐標(biāo)點(diǎn);
[0056] 步驟2:將Xmin、Xmax在坐標(biāo)軸上的距離劃分為D X(DX2 2)個相等的區(qū)間段,定義每個 區(qū)間段的長度It:
[0057] lt= (Xmax-Xmin)/Dx
[0058] 步驟3:根據(jù)水印嵌入位置,調(diào)節(jié)各坐標(biāo)的小數(shù)點(diǎn)位置:
[0059] X7 i = Xi X 10p,P < Pmax
[0060] 其中P表示水印嵌入的位置參數(shù),?〇1£?表示坐標(biāo)小數(shù)點(diǎn)后的最大有效位數(shù)。
[0061 ]步驟4:計(jì)算虛擬坐標(biāo)點(diǎn)。對于X坐標(biāo)軸上的任一橫坐標(biāo)X' i(i e [1,η] ,χ' i矣X' min, x\#x\ax),確定該橫坐標(biāo)所在的區(qū)間段uxi(0 < uxi < Dx_l)及其左右虛擬坐標(biāo)點(diǎn)<、.x/' ;
[0063] 水印嵌入:
[0064] 步驟1:遍歷二維工程圖形G中所有實(shí)體(例如線、弧、圓等)的所有頂點(diǎn)坐標(biāo),得到 一組二維頂點(diǎn)坐標(biāo)集合V = {Vi,V2,…,Vi…,Vn},獲取V中各頂點(diǎn)橫坐標(biāo)的最大值Xmax和最小 值Xmin作為參考坐標(biāo)點(diǎn);
[0065]步驟2:對實(shí)際橫坐標(biāo)Y i,按上述虛擬坐標(biāo)點(diǎn)的構(gòu)造原則計(jì)算其左右虛擬坐標(biāo)點(diǎn); [0066]步驟3:將實(shí)際橫坐標(biāo)和虛擬橫坐標(biāo)構(gòu)成的一組有序數(shù)據(jù)集(< S X/ <<)作為水印 載體,計(jì)算其均值歷:
[0067] M = +x+x)/3 V l l ' - l /
[0068] 步驟4:依據(jù)均值兩:和待嵌入的水印信息Wi修改實(shí)際坐標(biāo)實(shí)現(xiàn)水印嵌入。嵌入水印 后的坐標(biāo)用χ, πι'表示。