重慶電子工程職業(yè)學(xué)院計(jì)算機(jī)學(xué)院 楊玉平
圖像信息隱藏是指把秘密圖像隱藏于載體圖像之中,秘密圖像要比載體圖像小[1]。圖像信息隱藏一般分為兩大類,一是圖像可逆數(shù)據(jù)隱藏,一是圖像不可逆數(shù)據(jù)隱藏[2]。圖像可逆數(shù)據(jù)隱藏的研究對(duì)一些特殊領(lǐng)域有著重要的作用,比如將圖像作為證物。對(duì)圖像的可逆數(shù)據(jù)隱藏的研究在很早時(shí)候就有了,比較經(jīng)典的算法是Tian差值擴(kuò)展[3]。之后的許多算法都是在它的基礎(chǔ)上進(jìn)行改進(jìn),祝玉新[4]等人提出的基于Haar小波的彩色圖像可逆水印算法,周璐[5]等人提出的用于矢量數(shù)字地圖的可逆數(shù)據(jù)隱藏算法。
文獻(xiàn)[3]是基于Haar小波變換進(jìn)行的。首先用圖像相鄰的兩個(gè)像素作差運(yùn)算,把要隱藏的數(shù)據(jù)轉(zhuǎn)成二進(jìn)制數(shù)據(jù),再把二進(jìn)制數(shù)據(jù)按位嵌入兩相鄰像素的差值中。例如,設(shè)p1,p2是兩相鄰的像素值,h為它們的差值,h'為嵌入秘密數(shù)據(jù)后的新差值,p為它們的均值,b是需要隱藏的二進(jìn)制數(shù)據(jù),p1',p2'為載體圖像新像素值,嵌入秘密數(shù)據(jù)后可得新差值h'=2h+b,在提取時(shí)用b=lsb(h'),lsb(·)是取數(shù)據(jù)的二進(jìn)制信息的最低位。載體圖像恢復(fù)時(shí)通過h'-b求得原始差值.通過(2.1)式恢復(fù)原始載體圖像。
本算法基于彩色圖像,由于彩色圖像可以分成RGB三種顏色的灰度圖像,所以我們計(jì)算差值時(shí)只取其中兩種顏色的灰度圖像,如從RG、GB或BR中選擇一種組合即可,這里我們選擇RB組合,首先作防止溢出的預(yù)處理運(yùn)算,把產(chǎn)生的數(shù)據(jù)作為輔助信息與秘密數(shù)據(jù)一起構(gòu)成欲嵌入的信息。分別計(jì)算R和B灰度圖像各像素的預(yù)測(cè)誤差,再求它們各自的差值,最后將它們各自的差值作差運(yùn)算求得需要嵌入秘密數(shù)據(jù)的二次差值。把秘密數(shù)據(jù)嵌入二次差值后,再作求載體圖像像素值的逆運(yùn)算,求得嵌入秘密數(shù)據(jù)的載體圖像。在提取秘密數(shù)據(jù)時(shí),同樣取RB組合,同嵌入時(shí)的運(yùn)算一樣,計(jì)算二次差值,lsb(·)函數(shù)提出二次差值的最低位,即為嵌入時(shí)的數(shù)據(jù),把提取出來的數(shù)據(jù)分成輔助信息和秘密數(shù)據(jù),用輔助信息恢復(fù)原始的載體圖像。下面的(2.2)式與(2.3)式是數(shù)據(jù)嵌入的核心公式。
其中△cz表示二次差值,△cz'表示嵌入數(shù)據(jù)b后或擴(kuò)展后的差值,p1'、p2'分別表示嵌入數(shù)據(jù)后的載體圖像像素值。下面(2.4)式和(2.5)式是恢復(fù)載體圖像的核心公式,
圖1 Greens
圖2 Pears
圖3 ORL人臉庫(kù)
(1)載體圖像初始化,將載體圖像RB灰度圖像按相同的方式分成兩組,以使上下左右相鄰像素不同時(shí)進(jìn)行數(shù)據(jù)嵌入,設(shè)定T值。
(2)在數(shù)據(jù)嵌入前,要用T+1和對(duì)所有像素進(jìn)行預(yù)處理,用adjst0記錄像素值小于等于T+1的個(gè)數(shù),用adjust1記錄像素值大于等于255-(T+1)的個(gè)數(shù),再通過adjust0和adjust1的大小得出sd的值是0還是1.最終達(dá)到載體像素調(diào)整的目的,防止嵌入數(shù)據(jù)后發(fā)生數(shù)據(jù)溢出。在運(yùn)算時(shí)會(huì)產(chǎn)生輔助信息,此輔助信息將與秘密數(shù)據(jù)一起構(gòu)成嵌入信息,并且此輔助信息將作為數(shù)據(jù)提取端的載體圖像恢復(fù)時(shí)的依據(jù)。
(3)通過(2.2)式與(2.3)式把嵌入信息嵌入到載體圖像中,(2.3)式是將嵌入數(shù)據(jù)后的差值變化修改到載體圖像中。
(1)在數(shù)據(jù)提取端提取數(shù)據(jù)。首先從數(shù)據(jù)發(fā)送端取得RB兩個(gè)灰度分量分別進(jìn)行差值運(yùn)算,再用兩個(gè)差值做差運(yùn)算求得二次差值△cz'。
(2)在-2T≤△cz'≤2T+1范圍內(nèi),用infob=lsb(abs(△cz'))提取嵌入信息,并分離出輔助信息和秘密信息。并用△cz=(△cz'-infoi)/2求得初始差值。
(3)用(2)中得到的差值通過(2.4)式修改載體圖像。
(4)用(2.5)式結(jié)合輔助信息恢復(fù)原始的載體圖像。
如圖1-3所示,在實(shí)驗(yàn)過程中,我們采用的仿真工具是matlab7.0,載體圖像采用了matlab7.0中自帶的Pears(732×486)圖像和Greens(500×300)圖像,用ORL人臉庫(kù)的八張圖像作為秘密圖像。
本算法對(duì)嵌入數(shù)據(jù)后載體圖像質(zhì)量下降的評(píng)價(jià)方法采用的是通用的PSNR值進(jìn)行。
表3.1 本算法和文獻(xiàn)[4][5]在相同閥值T=2下嵌入率與PSNR值的比較
在實(shí)驗(yàn)進(jìn)行時(shí),為了減少所選秘密圖像的特殊性帶來的誤差,所以在選擇秘密圖像時(shí)是從ORL人臉庫(kù)中隨機(jī)選擇的八張圖像,通過采用本算法和文獻(xiàn)[4]、文獻(xiàn)[5]的算法嵌入到Greens和Pears載體圖像中,表3.1所列數(shù)據(jù)是八張圖像嵌入后所得到的平均數(shù)據(jù)。
從表3.1中可以看出本算法的嵌入率是比文獻(xiàn)[4]和文獻(xiàn)[5]的嵌入率都要高,而通過對(duì)RB兩個(gè)分量的PSNR值對(duì)比來看,本算法的PSNR值只比文獻(xiàn)[4]和文獻(xiàn)[5]的PSNR值稍小一點(diǎn);可以看出嵌入率的提高數(shù)值遠(yuǎn)比PSNR值下降數(shù)值高很多,可以說是在損失少量的載體圖像質(zhì)量的情況下,較大地提高了嵌入率。
本文提出的二次差值算法是基于Tian差值擴(kuò)展的,為了更具有適用性,采用彩色圖像進(jìn)行實(shí)驗(yàn)。經(jīng)過實(shí)驗(yàn)數(shù)據(jù)對(duì)比分析,本算法的嵌入率在對(duì)載體圖像較小損失的情況下有很大提高,明顯優(yōu)于其他一些算法,因此本算法是具有一定的適用價(jià)值。
[1]孫銳,孫洪.數(shù)字圖像信息隱藏技術(shù)[C].武漢:武漢大學(xué)出版社,2001,5.
[2]楊玉平,陳勇,尹麗花.基于坐標(biāo)軸的雙重置亂數(shù)字圖像隱藏算法與實(shí)現(xiàn)[J].重慶電子工程職業(yè)學(xué)院學(xué)報(bào),2011,5(3):149-151.
[3]TIAN Jun.Reversible data embedding using a difference expansion[J].IEEE Transaction on circui ts and Systems for Video Technology,2003,13(8):890-896.
[4]祝玉新,孫星明,楊恒伏.基于Haar小波的彩色圖像可逆水印算法[J].計(jì)算機(jī)應(yīng)用研究,2007,24(6):165-169.
[5]周璐,胡永健,曾華飛.用于矢量數(shù)字地圖的可逆數(shù)據(jù)隱藏算法[J].計(jì)算機(jī)應(yīng)用,2009,29(4):990-993.