何佳,陳勇,陳登
(重慶師范大學計算機與信息科學學院,重慶 401331)
二值圖像存儲簡單,數據傳真、文字識別、條碼識別和數字簽名中得到廣泛應用。通過在二值圖像中嵌入秘密信息,達到隱蔽傳輸目的,是信息隱藏方法的研究熱點?;诙祱D像的信息隱藏技術在商業及軍事等領域得到廣泛關注。二值圖像信息隱藏的基本思想是利用載體圖像中的冗余信息來嵌入秘密信息,相關研究大都圍繞不可感知性、魯棒性、嵌入量來展開。一般而言,在秘密信息嵌入載體圖像的過程中,往往要修改載體圖形的部分信息,因此如果能夠修改較少的載體圖像信息,而嵌入較多的秘密信息,在一定程度上便可達到較好的不可感知性、較強的魯棒性和較大的嵌入量。二值圖像的信息隱藏研究,現階段的方法主要可分為以下幾類:基于分塊方式嵌入法[1-5],基于半色調圖像的嵌入法[6]、對大塊圖像進行結構微調法[7],頻域嵌入法等。
在現有的各種二值圖像隱藏算法中,采用分塊方法進行隱藏信息嵌入的算法,由于其操作相對簡單,并且信息嵌入的容量也比較大,該類算法(文獻[1-5])是二值圖像信息隱藏的當前主流算法。該算法的核心是,將載體圖像Im×n進行規則劃分,得到個大小為k×k的子塊;依據一定的評價指標,如利用小塊中心像素修改帶來的連通度和平滑度影響為指標,對所有個子塊進行分析,選定評價值較好的圖像塊;將要嵌入的秘密信息先轉化為比特流信息,依據要嵌入的比特流信息,修改塊中某點的黑白像素,因是二值圖像,修改就簡化為像素值的反轉。隱藏信息提取時,依據分塊的大小k,和相同的塊評價指標,可以依序找到嵌入了比特信息的塊,據此可以恢復出當時嵌入的秘密信息。
在現有算法的圖像塊的獲取中,如文獻[1,2],為了提取的高效簡單,圖像子塊的獲取是按規則劃分方式對載體圖像進行分塊。
現有的按分塊方法進行信息隱藏的算法,塊的選擇沒有考慮圖像自身的像素變化特性。對現有的算法分析可以發現,對片狀全黑和全白區域是不能嵌入信息的,否則會對圖像視覺效果帶來較大的影響,載體圖像嵌入前后有較大的視覺差異。通常選出的嵌入塊會出現在圖像的邊緣和其附近區域,而圖像邊緣是依圖而變,極不規則,若按傳統的塊劃分和選取方法,大量可嵌入信息的邊緣不能取到,使得載體圖像可嵌入的信息量較少。本文將在現有分塊比特信息嵌入的思想上,設計基于雙評價值的改進二值圖像分塊隱藏算法,通過對載體圖像自身變化的邊緣分塊的雙向評價分析,獲取比傳統算法更多的可嵌入塊,提升比特信息嵌入量,同時在相同的嵌入信息量時,對載體圖像的視覺效果影響更小,更不易被察覺出圖像的改變。
本文將以圖像中所有可能的嵌入像素點按塊進行評價,被評價像素點處于k×k塊的中心,所設計的算法將利用評價置函數,選出評價值相對較高的塊的中心作為嵌入候選點集進行篩選,以確定比特信息隱藏位置。
二值圖像像素點的修改是黑白的反轉,嵌入隱藏信息帶來的對載體圖像的修改,將對原圖造成較大的視覺影響差異。因此,對二值圖像嵌入點的選擇要慎重的多。文本將應用文獻[4]中給出的點平滑度和連通性函數作為評價函數。其定義如下:
這里塊的大小設定為3×3。水平方向、豎直方向、正對角方向和逆對角方向的四個平滑度指標和的計算公式如下:


基于雙評價值的二值圖像分塊隱藏算法的嵌入算法(3×3分塊)如下:
(1)讀入原始載體圖像,圖像大小為m×n的二值矩陣,為其處像素值;讀入隱藏比特序列H,的向量為其第k個需嵌入的比特值;設定評價值閾值為T。
(3)對候選嵌入點集S1中的每個點,置反該像素點的值,重新按公式(5)計算評價值,對和皆大于某閾值T的中心點,構成新的候選嵌入點集
(4)按行優先的順序,逐點修改點集S2,即若確定了嵌入點為時,其對應的3×3大小的塊內的8個鄰域點,排除在S2之外,得到實際可嵌入點集S3。
(5)利用實際嵌入點集S3,嵌入比特序列H。若嵌入點為即可,完成后嵌入后,獲得的修改載體圖像記為HI,與載體圖像I大小相同。
基于雙評價值的二值圖像分塊隱藏算法的信息提取算法(3×3分塊)如下:
(1)讀入嵌入隱藏信息后的圖像HI,隱藏比特序列的長度L,評價值閾值T。
(2)對HI,按行優先序,逐點按公式(5)計算評價值和,若該點滿足和都大于T,則該點像素值即為嵌入的比特信息;每提取出一個比特信息,該點所處的3×3子塊的其余鄰域點不再做提取信息操作。
(3)提取的比特序列長度達到L時,所有隱藏信息提取完成。
為驗證所設計算法的有效性和性能,對1.2節所設計的二值圖像信息隱藏與提取算法,在MATLAB平臺上進行了仿真實驗。仿真實驗所用的圖例如圖1,有6幅不同類型的二值圖像,有人物、動物、文本、水果,圖標等圖像,所有圖像大小都是256×256。

圖1 測試用的6幅二值圖像

圖2 Cameraman圖像對應的嵌入點集
為了進一步了解嵌入點集的選取情況,表1對嵌入候選點集與實際可嵌入點集的差異進行了數量描述。從表1中可見,S3?S2?S1??傮w上,S2比S1有減少,但并不顯著;而S3相比S1或S2而言,有較顯著的減少。平均看,S2的點數占S1的83.65%,S3的點數僅占S1的 35.61%。

表1 測試圖像對應的候選點集與實際可嵌入點集
在獲得實際可嵌入點集S3后,就可以實施隱藏信息的嵌入了。仿真實驗嵌入的信息為圖3所示的一幅文本二值圖像,當大小為19×86時,需嵌入1634個比特。

圖3 待嵌入的隱藏圖像,大小19×86
對大小為19×86時的待嵌入的隱藏圖像,需嵌入1634個比特。Cameraman圖像能夠滿足嵌入比特長度要求,嵌入隱藏信息后的載體圖像修改圖像與原圖的對比效果見圖4所示。在嵌入的信息較多時,由于邊緣點變化沒有規則,所以嵌入前后,變化不明顯。對隱藏圖像,提取算法獲得的信息圖像見圖5沒有任何失真,可以完全恢復嵌入信息。

圖4 測試Cameraman圖像嵌入隱藏信息前后對比圖

圖5 提取隱藏信息后構建的圖像
總體看,不同類型的分塊二值圖像信息隱藏算法的嵌入容量,主要取決于可嵌入單元的數量,這與具體的嵌入分塊的選取方式有關。隨著評價閾值的提高,對所選嵌入點的要求也就越高,嵌入容量會下降,但選出的嵌入點的修改,對圖像視覺效果的影響也越小。邊緣較多的圖像,其蘊含的嵌入點相對也越多。
本文設計了一種改進的分塊二值圖像嵌入和提取算法。該算法側重于在圖像邊緣尋找滿足閾值條件的較好嵌入點,能夠獲取較多的可嵌入點,且嵌入圖像的視覺效果較好。MATLAB平臺上的仿真實驗驗證了所設計算法的正確性和有效性。通過對比試驗分析,進一步揭示了所設計的算法具有較高的嵌入容量和較好的隱藏效果,嵌入后的圖像失真較少。
參考文獻:
[1]Wu M,Liu B.Data Hiding in Binary Image for Authentication and Annotation[J].Multimedia,IEEE Transactions on,2004,6(4):528-538.
[2]Yang H,Kot A C.Pattern-Based Data Hiding for Binary Image Authentication by Connectivity-Preserving[J].Multimedia,IEEE Transactions on,2007,9(3):475-486.
[3]付磊,劉九芬,張衛明等.一種無損的二值圖像信息隱藏算法[J].信息工程大學學報,2012,13(4):421-425.
[4]周波,陳健.一種適用于二值圖像的數字s水印算法[J].上海交通大學學報,2004,38(9):1509-1514.
[5]原迪,劉棣華.一種新的二值圖像信息隱藏于提取算法.人工智能及識別技術,2009,24:97-100.
[6]Tsai C L,Fan K C,Chung C D,et al.Data Hiding of Binary Images Using Pair-Wise Logical Computation Mechanism[C].Multimedia and Expo,2004.ICME'04.2004 IEEE International Conference on.IEEE,2004,2:951-954.
[7]Filler T,Judas J,Fridrich J.Minimizing Embedding Impact in Steganography Using Trellis-Coded Quantization[C].IS&T/SPIE Electronic Imaging.International Society for Optics and Photonics,2010:754105-754105-14.