一種簡便易行的空間域圖像信息隱藏技術
1 引言
??? 圖像的信息隱藏技術是指在圖像中加入代表版權擁有者的某些信息(水印),以實現版權保護。加入水印后的圖像應無明顯降質現象出現,即水印具有較強的不可見性;同時也應具有魯棒性,即經過各種惡意或無惡意的信號處理后,水印仍能被完整、準確的鑒定出來。
??? 本文介紹了一種空間域圖像信息隱藏方法,該方法中首先將水印圖像各像點的位置進行隨機置亂達到加密的目的,再根據水印各像點的取值,并結合宿主圖像塊的特點,自適應地改變嵌入信息的強度,以滿足水印的不可見性,利用偽隨機序列將水印點嵌入到圖像中的位置進行隨機置亂,提高了水印的安全性以及受到剪切時的穩健性,此算法無論是在嵌入或是提取水印時都非常簡便,可利于實時或者FPGA的實現,另外實驗也證明,該算法具有很好的水印透明性和魯棒性。
2 水印的嵌入方法描述
2.1 二值水印圖像的隨機置亂
???? 將二值圖像作為水印,設其像點為為Mm×Nm。為了提高水印的安全性,首先對原始二值水印圖像進行隨機排列,即隨機置亂。過程如下:
(1)將大小為Mm×Nm的二值圖像表示成向量形式。
(2)由密鑰key1控制產生一個長度為Mm×Nm的隨機序列,序列的元素是1-Mm×Nm之間隨機排列的整數。
(3)以隨機序列的元素為序號,重排水印序列的元素的次序,實現水印的置亂。
2.2 宿主彩色圖像從RGB到YUV格式的轉換
??? 彩色圖像比較常用的表示格式為RGB(即紅、綠、藍)格式,而YUV顏色表達方式主要用于電視信號中,Y分量的物理含義是亮度,代表了圖像的所有信息,U和V分量代表了色差信號,我們在Y分量中加入水印,對于U,V分量不做任何變換,在Y分量中加入水印之后,由YUV分量重新生成RGB分量,即構成了加入水印后的圖像。
圖像從RGB到YUV以及從YUV到RGB格式的轉換的公式如下:
2.3 根據圖像塊特征,自適應地改變嵌入水印的強度
????? 將宿主圖像Y分量分成大小4×4的圖像塊,水印加入的過程實際上就是根據水印像點值的取值情況依次改變對應圖像塊灰度值的過程,這里灰度值改變的大小程度主要是根據宿主圖像塊的特征而自適應地改變,根據人類的視覺特點,如果圖像塊的灰度值對比度越大,人眼對圖像中的噪聲的敏感性越弱,相反,對噪聲的敏感性就強。而水印的嵌入過程可以認為是圖像加入噪聲的過程,嵌入水印的強度可以根據宿主圖像塊的灰度對比度而改變,如果對比度大,則加入的水印可以強一點,假設Ymax和Ymin分別是選定的一個4×4塊中的16個象素中最大的灰度值和最小的灰度值,那么差值Δ=gmax-gmin可以近似表示圖像塊的對比度的大小,根據Δ可以改變宿主圖像灰度值的變化量的大小,即加入水印的強弱,為了防止由于圖像塊過于平滑,造成水印在圖像塊中強度太弱使魯棒性變差,我們設置了水印強度的下限λmin,這樣構成了如下用于調整水印強度的系數:λ=max[λmin,K×(ymax-ymin),其中k可以調整水印圖像中的整體強度,λmin根據宿主圖像的特點由實驗中確定,下面介紹水印嵌入的方法。
首先產生一個數值在0-1之間的長度為4×4的偽隨機序列,并將該序列變成4行×4列的矩陣PN(i,j),(j=1,…,4;j=1,…,4)
???? 假如二值水印序列當前元素值為0,相應的宿主圖像塊的各灰度值y(i,j)作如下修改:ynew(i,j)=y(i,j)+λ×PN(i,j);若二值水印序列當前元素值為0,相應宿主圖像塊的各灰度值y(i,j),作如下修改:ynew(i,j)=y(i,j)-λ×PN(i,j)。也就是說保證在水印像點值為1時,相應宿主圖像塊中的各灰度值比原來的值有所增加,而水印像點值為0時則相應宿主圖像塊的灰度值變小,由于PN(i,j)是隨機的,所以圖像塊中任意位置增加或減小的灰度值是隨機的,類似于噪聲,使水印在視覺上不易被察覺。
2.4 水印信息隨機嵌入到圖像塊
???? 水印信息隨機加入到各個圖像塊中,而不是依次將水印信息加入到由上而下、由左到右描述的圖像塊中,其主要原因有兩個:第一是為了防止攻擊時可能將含水印的圖像部分完全剪切掉以致于提取不出水印,以及保證圖像成片被剪切時水印不是也被連續剪切,從視覺角度還可以觀察到水印圖像的概貌;第二,依賴于密鑰的水印信息的隨機加入,也是從水印安全性的角度考慮的。
?? 水印隨機嵌入的實現方法如下:設原始圖像的大小為M點×N點,由密鑰key2產生長度為M×N的隨機序列,其值x是1- M×N的自然數的隨機重排,x=p(i),x即是第i(i=1,2,…,Mm×Nm)個水印點嵌入到宿主圖像中的圖像塊的序號,通過實驗證明,這種隨機嵌入法可以很好地抗擊剪切的攻擊。
3 水印的提取方法描述
對水印的提取可以分為以下幾個步驟:
(1)密鑰key2產生隨機序列,找出嵌入水印點的對應圖像塊位置;
(2)將彩色圖像由RGB表色方法轉換成YUV表色方法,提取出灰度(亮度)Y分量;
(3)對4×4的圖像塊求所有象素灰度值的總和;
該圖像塊已嵌入的水印像點值是1;如果sw
(4)由密鑰Key1控制產生一個隨機序列對水印序列位置重排,并構成二維的水印圖像,這就是提取出的水印。
4 實驗結果
??? 我們運用Matlab語言設計了嵌入和提取的水印的程序,并對性能做了測試,宿主圖像是512×512點的lena彩色圖像,水印是41點×61點的二值圖像。
??? 加入水印后的圖像的水印不可見性可用峰值信噪比PSNR來測試。在λmin取0.2和k取0.5時,實驗測出的峰值信噪比PSNR=43.0231,這個值表明了圖像在嵌入水印之后的透明性是比較好的,從視覺的角度也可以看到,圖像沒有任何可見失真;另外,在沒有任何攻擊下,水印可以完全準確地提取出來(見圖1)。
?? 下面進行魯棒性測試,圖2是對圖像進行窗口大小為3×3的中值濾波后,提取出的水印,相似度為0.7609,圖3是對圖像加密度為0.03校驗噪聲攻擊時提取出的水印,相似度0.7016,圖4是圖像進行壓縮比為25:2的JPEG壓縮后提取的水印,相似度為0.9076,圖5是將圖像旋轉18度后提取出的水印,相似度為0.7503,圖6是對圖像進行剪切掉1/4后提取出的水印,相似度為0.92322,圖7是對圖像進行剪切掉1/2后提取出的水印,相似度為0.81931。??
?
? 從以上的測試結果看到,該算法對一些常見的圖象處理或攻擊呈現出很好的魯棒性。而對于剪切攻擊,其魯棒性更為突出。
5 結語
? 本文介紹了一種基于空間域的簡便的圖像水印算法,根據圖像塊的灰度對比度,自適應地改變水印加入的強度,使水印不可見性增強,并兼顧了不可見性和魯棒性之間的矛盾。同時將水印加入到圖像中的位置隨機排列,提高了水印的安全性,也提高了水印抗擊剪切的魯棒性。
評論
查看更多