劉 芳,金作林
(1.北京電子科技學(xué)院,北京 100070;2.第四軍醫(yī)大學(xué),陜西 西安 710032)
醫(yī)學(xué)圖像水印技術(shù)是對(duì)醫(yī)學(xué)影像設(shè)備形成的數(shù)字化圖像或模擬圖像經(jīng)量化后的數(shù)字化圖像,按照實(shí)際應(yīng)用來隱藏秘密信息以滿足用戶需要的技術(shù)。在現(xiàn)代醫(yī)療體系中,醫(yī)學(xué)專家可以通過遠(yuǎn)程健康診療系統(tǒng),方便快捷地獲取病人的醫(yī)學(xué)圖像來診斷病情。為了便于專家的診斷,同時(shí)保護(hù)病人的隱私,確保醫(yī)學(xué)圖像的版權(quán),大量的水印信息,如病人信息、相關(guān)診斷數(shù)據(jù)、醫(yī)院的標(biāo)識(shí)、醫(yī)生的簽名等需要秘密嵌入供診斷的醫(yī)學(xué)圖像中。因此,醫(yī)學(xué)圖像水印算法的優(yōu)劣,將直接影響使用者對(duì)圖像的最終感受,進(jìn)而影響到對(duì)圖像的理解和對(duì)疾病的診斷。目前的圖像水印算法大多屬于有損水印,水印信息嵌入的同時(shí)會(huì)導(dǎo)致載體圖像產(chǎn)生永久的失真,主要用于圖像產(chǎn)品的版權(quán)保護(hù)和認(rèn)證,并不完全適用于醫(yī)學(xué)圖像這類特殊的應(yīng)用。在此背景下,可逆圖像水印技術(shù)成為了近年來的研究熱點(diǎn)之一,被廣泛應(yīng)用于醫(yī)學(xué)、軍事、司法、政務(wù)等領(lǐng)域。
所謂可逆水印,是指在正確提取水印后還能無損地恢復(fù)原始圖像的水印技術(shù)。從應(yīng)用角度來看,可逆水印更加適用于隱秘信息傳輸和脆弱性認(rèn)證。
已有的可逆圖像水印算法可以分為3類:1)基于無損壓縮的方法[1-4]。此類算法容易實(shí)現(xiàn),但嵌入數(shù)據(jù)量較小。2)基于差值擴(kuò)展的方法[5-7]。此類算法利用可逆整數(shù)小波變換,將秘密信息嵌入擴(kuò)展后的高頻小波系數(shù)(像素對(duì)差值)中,水印的嵌入對(duì)圖像質(zhì)量的影響較大。3)基于直方圖平移的方法[8-10]。此類算法根據(jù)圖像特征首先構(gòu)建直方圖,然后找到直方圖中的峰值點(diǎn)和零值點(diǎn),通過直方圖平移修改將水印嵌入在具有峰值點(diǎn)特征的像素中。其優(yōu)點(diǎn)是水印不可見性好,計(jì)算簡單,但缺點(diǎn)是允許嵌入的水印量依賴于圖像特征的分布。
對(duì)于醫(yī)學(xué)圖像而言,在保證可逆性的同時(shí)減少圖像失真遠(yuǎn)比增加水印容量更重要。因此本文的研究就是結(jié)合醫(yī)學(xué)圖像的特點(diǎn),從改進(jìn)水印不可見性的角度提出了一個(gè)基于分塊的灰度直方圖平移水印算法。
Ni算法[8]描述了直方圖平移方法的基本原理。首先構(gòu)建圖像的灰度直方圖,在直方圖中找到峰值點(diǎn)(圖像中出現(xiàn)次數(shù)最多的像素?cái)?shù)目)和零值點(diǎn)(圖像中出現(xiàn)次數(shù)最少的像素?cái)?shù)目,一般為出現(xiàn)次數(shù)為零的像素?cái)?shù)目)。用p表示峰值點(diǎn),z表示零值點(diǎn),z>p,記錄p和z的值,如圖1a所示。然后將圖像中所有灰度值處于區(qū)間[p+1,z-1]的像素的值加1,即將區(qū)域[p+1,z-1]內(nèi)的直方圖向右平移一位,使得灰度值為p+1的像素個(gè)數(shù)為0,如圖1b所示。嵌入水印時(shí),如果水印為“1”,則灰度值為p的像素的值加1,變?yōu)閜+1;如果水印為“0”,則保持不變,如圖1c所示。提取水印時(shí),根據(jù)記錄的p和z的值,掃描圖像。若像素的灰度值為p,其攜帶的水印位為“0”,若像素的灰度值為p+1,其攜帶的水印位為“1”。提取水印后,只需將灰度值處于區(qū)間[p+1,z]的像素的值減1,即可恢復(fù)原始圖像。
圖1 直方圖平移方法示意圖
顯然,直方圖越陡峭,則水印嵌入容量越高;而需平移的像素點(diǎn)數(shù)量越少,則圖像失真越小,水印不可見性越好。一般來說,醫(yī)學(xué)圖像的灰度取值范圍較窄,峰值點(diǎn)的分布相對(duì)比較集中。以圖2a為例,將其劃分為8×8的塊,則峰值點(diǎn)的分布如圖3所示??梢钥闯?,圖像中的峰值點(diǎn)集中分布在少量分塊中。如果嵌入和提取水印時(shí)能夠識(shí)別峰值點(diǎn)的位置,僅在峰值點(diǎn)所在的分塊而不是整個(gè)圖像進(jìn)行直方圖平移操作,就可以在不影響算法可逆性的條件下,大大減少需平移像素點(diǎn)的個(gè)數(shù),從而獲得更好的圖像質(zhì)量。
圖2 原始圖像
圖3 峰值點(diǎn)分布圖
假設(shè)原始圖像 I大小為M×N,每個(gè)像素x∈[0,255]。w 為二值水印序列,w∈{0,1}。
嵌入算法的步驟描述如下:
1)構(gòu)建圖像I的灰度直方圖,記錄峰值點(diǎn)p和零值點(diǎn)z。如式(1)所示,hist(x)是圖像的灰度直方圖
步驟1,統(tǒng)計(jì)圖像塊內(nèi)峰值點(diǎn)(值為p的像素)的個(gè)數(shù)count_p。判斷count_p是否大于0,如果count_p>0,轉(zhuǎn)入步驟2;反之,轉(zhuǎn)入步驟4。
步驟2,嵌入水印,如式(2)所示
步驟3,判斷當(dāng)前塊嵌入的水印序列是否全為1。如果全為1,則嵌入后的圖像塊內(nèi)不含峰值點(diǎn),設(shè)定標(biāo)志位flag(k)=1,k=k+1。
步驟4,統(tǒng)計(jì)圖像塊內(nèi)值為p+1的像素的個(gè)數(shù)count_p1,如果count_p1=0,跳過當(dāng)前塊;反之,設(shè)置flag(k)=0,k=k+1。
4)整合所有圖像塊,得到嵌入水印后的圖像I'。
為了能夠在提取水印后無損地恢復(fù)原始圖像,數(shù)據(jù)嵌入的過程中,需要存儲(chǔ)一定長度的輔助信息。對(duì)于本文算法來說,輔助信息包含三部分內(nèi)容:一是峰值點(diǎn)和零值點(diǎn),共16位;二是分塊標(biāo)志位,共k-1位,可以采用行程編碼對(duì)其進(jìn)行無損壓縮;三是記錄上/下溢出的相關(guān)信息,其長度取決于溢出點(diǎn)的個(gè)數(shù)。本文算法中,溢出現(xiàn)象只可能發(fā)生在灰度值為0和255的像素上。假設(shè)原像素的值x=0,如果調(diào)整x的值,使x=x-1,則出現(xiàn)下溢。同理,假設(shè)x=255,如果使x=x+1,則出現(xiàn)上溢??梢圆捎煤唵蔚闹狈綀D收縮技術(shù)來處理溢出。對(duì)于取值為0和255的像素,修改其值,使之變?yōu)?和254,并記錄溢出位置。
水印提取和圖像恢復(fù)算法的步驟描述如下:
1)對(duì)于待測(cè)圖像進(jìn)行分塊,每個(gè)分塊的大小為s×t。標(biāo)志位計(jì)數(shù)器k初始值為1。
步驟1,統(tǒng)計(jì)圖像塊內(nèi)峰值點(diǎn)(值為p的像素)的個(gè)數(shù)count_p。判斷count_p是否大于0,如果count_p>0,轉(zhuǎn)入步驟2;反之,轉(zhuǎn)入步驟4。
步驟2,提取水印,即
步驟3,提取水印后,恢復(fù)圖像,即
步驟4,統(tǒng)計(jì)圖像塊內(nèi)值為p+1的像素個(gè)數(shù)count_p1,如果count_p1=0,跳過當(dāng)前塊;反之,如果flag(k)=1,調(diào)用式(3)和式(4)提取水印和恢復(fù)圖像,k=k+1,如果flag(k)=0,跳過當(dāng)前塊,k=k+1。
3)整合所有圖像塊,得到提取水印和恢復(fù)后的原始圖像。
實(shí)驗(yàn)編程環(huán)境采用MATLAB7.0,Windows XP操作系統(tǒng),1 Gbyte內(nèi)存。實(shí)驗(yàn)中使用的二值水印序列隨機(jī)產(chǎn)生,3幅測(cè)試醫(yī)學(xué)圖像從網(wǎng)絡(luò)圖像庫中選取,如圖2所示。
1)水印不可見性
選定分塊大小為8×8,在圖2的測(cè)試圖像中嵌入最大容量水印,得到的含水印圖像如圖4所示,其對(duì)應(yīng)的PSNR如表1所示。實(shí)驗(yàn)結(jié)果表明,嵌入最大容量水印后,圖像質(zhì)量較好,PSNR可達(dá)到56 dB以上,水印不可見性好。
圖4 含水印圖像
表1 含水印圖像質(zhì)量
2)水印容量
利用本文算法進(jìn)行水印嵌入時(shí),實(shí)際的水印嵌入容量R應(yīng)為總?cè)萘緾減去輔助信息長度L的值,即
由于掃描圖像進(jìn)行水印嵌入的過程中,每遇到灰度值等于峰點(diǎn)p就會(huì)嵌入1 bit信息。因此,C即為p的出現(xiàn)頻率??梢姡珻值越大,L值越小,水印的實(shí)際嵌入容量越大。
表2顯示了在分塊大小為8×8的情況下,不同測(cè)試圖像的實(shí)際嵌入容量。實(shí)驗(yàn)結(jié)果表明,容量大小與圖像特征有關(guān)。圖像紋理越簡單,容量越大;反之,容量越小。
表2 實(shí)際嵌入容量
3)計(jì)算復(fù)雜度
本文算法屬于空間域算法。計(jì)算開銷主要來源于產(chǎn)生直方圖、尋找峰值點(diǎn)零點(diǎn)、掃描圖像嵌入水印、直方圖平移等操作。假設(shè)載體圖像大小為M×N,對(duì)于本文算法而言,在嵌入水印的過程中需要對(duì)圖像進(jìn)行兩輪掃描,第一輪產(chǎn)生直方圖,第二輪嵌入水印的同時(shí)進(jìn)行直方圖平移,因此計(jì)算復(fù)雜度為O(2MN)。
4)分塊大小的選取對(duì)算法性能的影響
值得注意的是,分塊大小的不同對(duì)圖像質(zhì)量和水印容量可以產(chǎn)生影響。表3顯示了分塊大小分別4×4,16×16時(shí),得到的含水印圖像的PSNR及實(shí)際嵌入容量??梢钥闯?,分塊越小,圖像質(zhì)量越好,容量越低;反之,圖像質(zhì)量越差,容量越高。
表3 分塊大小對(duì)算法性能的影響
本文從提高水印不可見性的角度提出了一種基于直方圖平移的醫(yī)學(xué)圖像可逆水印算法。該算法的缺點(diǎn)是輔助信息過多,嵌入容量有限。下一步將研究如何盡可能地壓縮輔助信息,并將算法的思想應(yīng)用于差值直方圖平移算法,在保證高質(zhì)量的同時(shí)進(jìn)一步擴(kuò)充可隱藏容量。
本文算法屬于脆弱性水印算法,可以應(yīng)用到信息隱藏、圖像認(rèn)證和重要圖像的保密傳輸?shù)劝踩I(lǐng)域。
[1]HONSINGER C W,JONES P,RABBANI M,et al.Lossless recovery of an original image containing embedded data:US,6278791[P].2001-08-21.
[2]FRIDRICH J,GOLJAN J,DU R.Invertible authentication [C]//Proc.SPIE Security and Watermarking of Multimedia Content 2001.[S.l.]:SPIE,2001:197-208.
[3]CELIK M U,SHARMA G,TEKALP A M.Lossless watermarking for image authentication:a new framework and implementation[J].IEEE Trans.Image Processing,2006,15(4):1042-1049.
[4]李書欣,王泉,吳延贊,等.基于HVS感知模型與數(shù)據(jù)壓縮的可逆圖像水印算法[J].電視技術(shù),2010,34(6):26-27.
[5]TIAN J.Reversible data embedding using a difference expansion[J].IEEE Trans.Circuits and Systems for Video Technology,2003,13(8):809-896.
[6]ALATTAR A M.Reversible watermark using the difference expansion of a generalized integer transform[J].IEEE Trans.Image Processing,2004,13(8):1147-1156.
[7]WENG S W,ZHAO Y,PAN J S.Reversible data hiding using the companding technique and improved DE method[J].Circuits Systems and Signal Processing,2008,27(2):229-245.
[8]NI Z,SHI Y Q,ANSARI N,et al.Reversible data hiding[J].IEEE Transa.Circuits and Systems for Video Technology,2006,16(3):354-362.
[9]TSAI P,HU Y C,YEH H L.Reversible image hiding scheme using predictive coding and histogram shifting[J].Signal Processing,2009,89(6):1129-1143.
[10]LUO HAO,YU F X.Reversible data hiding based on block median preservation[J].Information Sciences,2011,181(2):308-328.