劉艷華
(鹽城工學(xué)院信息工程學(xué)院,江蘇 鹽城 224051)
隨著Internet的普及,圖像在數(shù)字媒體或互聯(lián)網(wǎng)上散布時(shí),可被無誤差的重復(fù)復(fù)制,圖像所有者的權(quán)利有可能受到侵害,信息的安全保護(hù)問題日益突出。有效地防止數(shù)據(jù)的非法復(fù)制的方法之一就是把水印的信息插入到潛在的易受攻擊的圖像中,水印不能從圖像本身分離出來。數(shù)字水印的概念還可以擴(kuò)展到電視圖像和聲音等領(lǐng)域,數(shù)字水印技術(shù)作為版權(quán)保護(hù)的重要手段而得到了廣泛的研究和應(yīng)用。
數(shù)字水?。―igital Watermarking)技術(shù)是將一些標(biāo)識信息(即數(shù)字水印)直接嵌入數(shù)字載體(包括多媒體、文檔、軟件等)當(dāng)中,但不影響原載體的使用價(jià)值,也不容易被人的知覺系統(tǒng)(如視覺或聽覺系統(tǒng))覺察或注意到。通過這些隱藏在載體中的信息,可以達(dá)到確認(rèn)內(nèi)容創(chuàng)建者、購買者、傳送隱秘信息或者判斷載體是否被篡改等目的。數(shù)字水印是信息隱藏技術(shù)的一個重要研究方向。簡單的可見水印處理在空間域執(zhí)行。不可見水印是裸眼看不見的,需要使用一個合適的解碼算法進(jìn)行恢復(fù)。水印處理的目的是在圖像上添加數(shù)據(jù)信息,水印本身可以是可見的或不可見的。
本文介紹的數(shù)字圖像水印處理,是把二值數(shù)據(jù)插入到一副圖像中以對圖像構(gòu)成保護(hù)。由于MATLABm語言是一種非常簡單高效、功能極強(qiáng)的編程語言,許多復(fù)雜的問題在MATLAB中很容易實(shí)現(xiàn)。本文基于頻域的DCT(離散余弦變換)數(shù)字水印算法過程,詳細(xì)介紹用MATLAB實(shí)現(xiàn)數(shù)字水印的嵌入和提取的方法。
從信號處理的角度看,在載體圖像中嵌入數(shù)字水印可以視為在強(qiáng)背景(即原始圖像)下疊加一個視覺上看不到的弱信號(水?。?,由于人的視覺系統(tǒng)(Human Visual System,HVS)分辨率受到一定的限制,只要疊加信號的幅度低于HVS的對比度門限,HVS就無法感覺到信號的存在,因此,通過對載體對象作一定的調(diào)整,就有可能在不引起人感知的情況下嵌入一些信息。
圖1中的編碼器把水印wi嵌入到圖像fi中,產(chǎn)生加過水印的圖像fwi。
圖1 水印處理系統(tǒng)的編碼器
水印嵌入準(zhǔn)則分為加法準(zhǔn)則和乘法準(zhǔn)則,如式(1)和(2)所示:
α為強(qiáng)度因子,保證在水印不可見的前提下,盡可能提高嵌入水印的強(qiáng)度。α的選擇必須要考慮圖像的性質(zhì)和系統(tǒng)的視覺特性。
圖2中解碼器提取和驗(yàn)證加過水印的輸入fwi或沒有加過水印的輸入fi中水印wi的存在性。如果水印可見,不需要解碼器,如果水印不可見,解碼器可能需要也可能不需要fi和wi的拷貝去做提取和驗(yàn)證工作。但將水印技術(shù)用于圖像的網(wǎng)絡(luò)發(fā)布和傳播時(shí),如果檢測時(shí)需要使用原始圖像則是個缺陷,因此,當(dāng)前大多數(shù)的水印檢測算法不需要原始圖像的參與。
圖2 水印處理系統(tǒng)的解碼器
水印信息選擇二值化的灰度圖像,嵌入系數(shù)根據(jù)水印圖像的二值性進(jìn)行選擇,首先將原始圖像分成8×8的子塊,然后將數(shù)字水印的灰度值直接植入到原始二值灰度圖像DCT變換域中,實(shí)現(xiàn)水印的嵌入。具體方法如下:
設(shè)X是M*N大小的原始圖像,W是水印圖像,大小為P*Q,M和N分別是P和Q的偶數(shù)倍。把水印W加載到圖像X中,算法分以下幾步進(jìn)行:
(1)將 X 分解為(M/8)*(N/8)個 8*8 大小的方塊 BX(m,n),同時(shí),將 W 也分解為(M/8)*(N/8)個(8·P/M)*(8·Q/N)大小的方塊 BW(m,n),1≤m≤M/8,1≤n≤N/8。
(2)對每一個 BX(m,n)進(jìn)行 DCT 變換:DBX′(m,n)=DCT(BX(m,n))。
(3)對每一個 DBX′(m,n)和 BW(m,n),si為從 DBX′(m,n)的中頻選出的加載的位置,1≤i≤(8·P/M)*(8·Q/N),ti為水印 BW(m,n)的位置坐標(biāo) 1≤i≤(8·P/M)*(8·Q/N)。 DBX″(m,n)(si)=α*BW(m,n)(ti),其中 α 是加權(quán)系數(shù),用DBX″(m,n)(si)來代替DBX′(m,n)(si)得到加載水印后的圖像。
(4)對以上得到的每一個DBX″(m,n)進(jìn)行逆DCT變換:IDBX(m,n)=IDCT(DBX″(m,n))。并將各方塊IDBX(m,n)合并為一個整圖X′,即加載了水印的新圖像。
設(shè)圖像X′為已經(jīng)加載了水印的載體圖像?,F(xiàn)要將所加載的水印從X′中提取出來。其過程為上述加載水印算法的逆運(yùn)算:
(1)將 X′分為(M/8)*(N/8)個 8×8 大小的方塊 BX′(m,n),1≤m≤ M/8,1≤n≤N/8。 (2)對每一個 BX′(m,n)進(jìn)行二維 DCT 反變換:BX(m,n)=iDCT(BX′(m,n))。
(3)對每一個 BX(m,n),按照式 BW(m,n)(ti)=1/α*BX(m,n)(si)得到BW(m,n)。將上面得到的所有BW(m,n)合并成一個整圖W 。
下面以256*256的灰度圖像作為原始圖像,以32*32的二值圖像作為水印圖像,來實(shí)現(xiàn)水印的嵌入與提取。
運(yùn)行得到結(jié)果如圖3。
圖3 水印的嵌入提取結(jié)果
增加強(qiáng)度因子為0.08,結(jié)果如圖4,水印已經(jīng)顯現(xiàn)出來。
圖4 增加強(qiáng)度因子后嵌入和提取結(jié)果
從仿真結(jié)果可以看出,嵌入水印信息后,強(qiáng)度因子選取合適值,原圖與嵌入水印信息后的圖像在視覺效果上沒有明顯分別,用肉眼幾乎分辨不出,所以強(qiáng)度因子的選取要充分利用利用人眼的視覺特性。利用DCT域嵌入水印后,圖像在嵌入水印前后可以做到視覺效果改變不大,不影響圖像的正常使用。
[1]阮秋琦,阮宇智.數(shù)字圖像處理(第三版)[M].電子工業(yè)出版社,2013:394-396.
[2]武紅玉.基于DCT的數(shù)字水印的嵌入和提取[J].許昌學(xué)院學(xué)報(bào),2012(05).
[3]徐先傳,張琦.一種基于DCT域的數(shù)字水印方案研究[J].微計(jì)算機(jī)信息,2007(12).
[4]高玉娜,楊忠根.基于DCT域的數(shù)字水印算法[J].電腦知識與技術(shù),2009(04).
[5]張莉華,陳萍.信息安全中的數(shù)字水印算法研究[J].計(jì)算機(jī)仿真,2011(10).