才 雪,楊 楊,肖星星
(安徽大學(xué) 電子信息工程學(xué)院,合肥 230039)(*通信作者電子郵箱sky_yang@ahu.edu.cn)
近年來,可逆信息隱藏(Reversible Data Hiding, RDH)受到了廣泛的關(guān)注??赡嫘畔㈦[藏是向原載體中(如圖像[1-4]、視頻[5]、三維模型[6])嵌入秘密信息,得到與原載體質(zhì)量相同或者高于原載體的載密載體,然后解密方從載密載體中將秘密信息提取出來,并無損地恢復(fù)原始載體。簡而言之,可逆信息隱藏就是將信息嵌入到載體中,而解密方能夠提取出秘密信息并無損恢復(fù)原始載體。在軍事、醫(yī)學(xué)以及法庭取證等方面,原始載體細(xì)微的變化都會造成診斷出錯或者訴訟失敗,因此,在這些領(lǐng)域,可逆信息隱藏就顯得尤為重要。目前大多數(shù)的算法均是用來在數(shù)字圖像中嵌入不可見數(shù)據(jù)或可見水印。
當(dāng)原始載體為圖像時,信息嵌入率和圖像失真率是衡量可逆信息隱藏方法的兩個重要標(biāo)準(zhǔn)。然而,高嵌入率和低失真率二者相互矛盾,實現(xiàn)較高嵌入率的同時會引起更大的圖像失真,反之亦然。峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)是衡量圖像失真的一個常用指標(biāo),目前大多數(shù)的可逆信息隱藏方法都以追求較高的峰值信噪比為目標(biāo)。在嵌入過程中,圖像會產(chǎn)生失真,因此,盡管通過這些方法能夠?qū)崿F(xiàn)較高的PSNR,但是圖像視覺質(zhì)量并沒有提高甚至變差。醫(yī)學(xué)圖像是一類比較特殊的圖像,其細(xì)微的改變都有可能影響到醫(yī)生的診斷,因此對于這類圖像,圖像的視覺質(zhì)量往往比峰值信噪比重要得多。提高醫(yī)學(xué)圖像的對比度能使得圖像的細(xì)節(jié)部分得以顯現(xiàn),從而提高診斷的精準(zhǔn)性。目前,根據(jù)運用的載體類型可分為基于像素直方圖以及基于預(yù)測誤差直方圖的具有對比度增強(qiáng)效果的可逆信息隱藏方法?;谙袼刂狈綀D可實現(xiàn)對比度增強(qiáng)的可逆信息隱藏方法,主要有文獻(xiàn)[7-8]等提出的實現(xiàn)對比度增強(qiáng)的可逆信息隱藏方法,由于醫(yī)學(xué)圖像的背景中含有大量灰度單一的像素點,而文獻(xiàn)[7]的方法是選取像素直方圖中像素個數(shù)最多的灰度值進(jìn)行多輪信息嵌入,因此,該方法會首先增強(qiáng)背景像素點的對比度,這對于提高關(guān)鍵信息的細(xì)節(jié)并沒有幫助?;陬A(yù)測誤差直方圖的對比度增強(qiáng)的可逆信息隱藏方法包括文獻(xiàn)[9]中基于紋理區(qū)域?qū)Ρ榷仍鰪?qiáng)的可逆信息隱藏方法,其目的在于增強(qiáng)紋理區(qū)域的對比度使得圖像灰度差異較大的部分更加明顯,同時實現(xiàn)可逆的信息隱藏方法;然而該方法并非從灰度上進(jìn)行操作,因此它的對比度增強(qiáng)效果有限。
對于普通的醫(yī)學(xué)圖像來講,包含關(guān)鍵信息的部分一般圖像紋理度較高,另一部分紋理度較低,不包含任何關(guān)鍵信息。為了能夠同時實現(xiàn)圖像對比度顯著增強(qiáng)以及提高信息的嵌入率,本文提出了一種利用圖像的紋理度特點將醫(yī)學(xué)圖像的像素點分為高紋理度等級像素以及低紋理度等級像素的方法。高紋理度等級的像素點構(gòu)成了醫(yī)學(xué)圖像的關(guān)鍵部分,其中包含大量影響醫(yī)生診斷的信息;低紋理度等級的像素點構(gòu)成了醫(yī)學(xué)圖像灰度較為單一的部分,不包含圖像的關(guān)鍵信息。由于醫(yī)學(xué)圖像的高紋理度等級部分包含大量的關(guān)鍵信息,因此為了進(jìn)一步增強(qiáng)高紋理度等級的對比度并提高嵌入率,本文對高紋理度等級和低紋理度等級采用不同的嵌入方法。首先將圖像進(jìn)行拉伸,然后計算出每個像素點的紋理度并分出紋理度等級,將拉伸后的像素點根據(jù)紋理度進(jìn)行分級處理。為了進(jìn)一步增強(qiáng)高紋理度等級的對比度,對高紋理度等級采用一種具有類似直方圖均衡化效果的方法進(jìn)行嵌入;而對于低紋理度等級區(qū)域,為了提高嵌入率,使用改進(jìn)后文獻(xiàn)[10]的方法進(jìn)行信息嵌入。為了后續(xù)信息提取以及原始圖像的恢復(fù),需要保存必要的輔助信息,并將這些輔助信息作為秘密信息的一部分嵌入到圖像中。為了不讓這些信息影響圖像的整體嵌入率,完成高紋理度等級以及低紋理度等級的信息嵌入之后,將圖像四周的像素點提取出來,使用多輪直方圖平移的方法嵌入輔助信息。
本文提出的基于多紋理度劃分的可逆信息隱藏算法包括以下幾個部分:直方圖拉伸、紋理度等級的劃分、高紋理度等級以及低紋理度等級的信息嵌入和輔助信息的嵌入。直方圖拉伸的目的是為了有效增強(qiáng)圖像對比度;紋理度等級的劃分是利用像素點的紋理度將醫(yī)學(xué)圖像中包含關(guān)鍵信息的部分和灰度單一的部分區(qū)分開;高紋理度等級和低紋理度等級采用不同嵌入方式的目的是為了保證關(guān)鍵部分的圖像質(zhì)量并且提高圖像的整體嵌入率;為了防止輔助信息影響整體的嵌入率,本文使用圖像最外周的像素嵌入輔助信息。算法框架如圖1所示。
為了增強(qiáng)圖像的整體對比度,本文首先對圖像進(jìn)行直方圖拉伸;其次為了選出構(gòu)成圖像關(guān)鍵部分的像素點,需要計算出像素的紋理度,并將像素按照紋理度進(jìn)行分級。另外本文是對紋理度相同的像素點進(jìn)行處理,直到將所有的像素點處理完畢,因此為了減少直方圖的個數(shù),需要將紋理度歸類為M個等級。
目前在能夠?qū)崿F(xiàn)圖像對比度增強(qiáng)的可逆信息隱藏方法中,多數(shù)方法的對比度增強(qiáng)效果會受到嵌入率的影響,如文獻(xiàn)[7]方法,其方法雖然能夠?qū)崿F(xiàn)圖像對比度增強(qiáng),但是由于其對比度增強(qiáng)的程度取決于直方圖平移的輪數(shù),而在低嵌入率下,平移的輪數(shù)較少,這就導(dǎo)致了此時無法有效實現(xiàn)圖像對比度增強(qiáng)。本文為了使圖像的對比度不受信息嵌入率限制,首先對圖像進(jìn)行直方圖拉伸。下面將詳細(xì)介紹拉伸過程。
圖1 本文算法整體流程
為了增強(qiáng)圖像的整體對比度,本文首先對圖像進(jìn)行直方圖拉伸處理,拉伸公式如下:
(1)
拉伸恢復(fù)公式為:
(2)
其中:ui,j為原始像素值,ui,j′拉伸后的像素值,umax和umin分別為原圖像中像素點灰度值的最大值和最小值,Lmax和Lmin分別為拉伸之后的灰度最大值和最小值。比如,原圖像灰度值集合為{2,4,6},即umax=6,umin=2,假設(shè)拉伸后的最大值和最小值分別為10和0,即Lmax=10,Lmin=0,則進(jìn)行拉伸運算之后,像素灰度值集合為{0,5,10}。一般來說,Lmax=255,Lmin=0。
圖像的紋理度反映了圖像的灰度值的分布:灰度值變化較為劇烈的區(qū)域一般紋理度較高,而灰度值變化細(xì)膩的區(qū)域一般紋理度較低。一個像素點的紋理度可以體現(xiàn)出該像素點與周圍像素點的關(guān)系:若紋理度較高,則表示該像素值與周圍像素值差異較大;否則差別較小。醫(yī)學(xué)圖像是一類比較特殊的圖像,它包含大量灰度值單一的像素點,并且這些像素點的分布較為集中,一般分布在圖像的背景部分。一般來說,醫(yī)學(xué)圖像中包含關(guān)鍵信息的部分紋理度較高,另一部分灰度值較為單一,紋理度較低,不包含任何關(guān)鍵信息,因此本文利用像素的紋理度將像素分為高紋理度等級以及低紋理度等級兩類。像素紋理度的計算和分級過程如下:
在一幅圖像中,一個像素點的紋理度可以通過其周圍像素點的灰度值計算出來,一般定義為周邊每兩個相鄰像素點的差的絕對值,如圖2所示,Xi,j的紋理度計算公式如下:
VXi,j=|Xi,j-1-Xi+1,j-1|+|Xi+1,j-1-Xi+2,j-1|+
|Xi+1,j-Xi+2,j|+|Xi,j+1-Xi+1,j+1|+
|Xi+1,j+1-Xi+2,j+1|+|Xi-1,j+2-Xi,j+2|+
|Xi,j+2-Xi+1,j+2|+|Xi+1,j+2-Xi+2,j+2|
(3)
hXi,j=|Xi,j+1-Xi,j+2|+|Xi+1,j-1-Xi+1,j|+
|Xi+1,j-Xi+1,j+1|+|Xi+1,j+1-Xi+1,j+2|+
|Xi+2,j-1-Xi+2,j|+|Xi+2,j-Xi+2,j+1|+
|Xi+2,j+1-Xi+2,j+2|
(4)
nXi,j=VXi,j+hXi,j
(5)
其中:VXi,j代表在Xi,j周圍12個像素點中兩兩垂直相鄰的像素點的絕對差值;hXi,j代表在Xi,j周圍10個像素點中兩兩水平相鄰的像素點的絕對差值;nXi,j為VXi,j與hXi的和,即Xi,j紋理度,也即Xi,j周圍12個像素點中兩兩垂直以及兩兩水平的相鄰的像素點的絕對差值。
圖2 計算Xi,j紋理度的示意圖
每一個紋理度的像素點對應(yīng)生成一個集合h(n),如式(6):
h(n)=#{1≤k≤N:n=nk}
(6)
其中:#代表像素點的集合;N為圖像像素點的總個數(shù);nk為像素點的紋理度;h(n)代表紋理度為n的像素點的集合。
在嵌入時,本文計算出每一個集合的灰度直方圖進(jìn)行處理,為了減少后續(xù)直方圖的個數(shù)、減少紋理度的等級數(shù),方便后續(xù)根據(jù)紋理度對像素進(jìn)行處理,對像素紋理度進(jìn)行分級處理。分級處理的步驟如下:
1)計算出每一個像素點的紋理度。
2)找出滿足式(7)的紋理度:
(7)
其中:j∈{0,1,…,M-2};N為圖像像素點的個數(shù);k表示為第k個像素點;#定義為在圖像的像素點中,所有紋理度小于等于n的像素點的集合,即紋理度小于等于n的像素點的個數(shù);Sj為滿足式(7)中最小像素點個數(shù)對應(yīng)的最小紋理度。
3)得到[0,S0],[S0+1,S1],…,[SM-3+1,SM-2]以及[SM-2+1,∞)等M個區(qū)間后,按照圖像像素點的紋理度將該像素點對應(yīng)到相應(yīng)的區(qū)間,若根據(jù)紋理度像素點被劃分到第j個區(qū)間,則該像素點的紋理度記為j,由此得到紋理度分為M個等級的像素點。
紋理度分級的目的是為了保證每個紋理度等級像素點的個數(shù)盡可能地接近。本文實驗過程中M一般取到8。
實驗過程中采用了大量的醫(yī)學(xué)圖像[11]進(jìn)行測試,由于篇幅限制,隨機(jī)選出CT chest、Thorax以及chest三幅圖像(如圖3)來說明高、低紋理度等級的區(qū)分情況。
圖3 原始圖像
由于醫(yī)學(xué)圖像是一類比較特殊的圖像,其中一部分是灰度較為單一的區(qū)域,不包含任何圖像細(xì)節(jié)信息,該部分為低紋理度等級部分;而另一部分則灰度值分布廣泛,醫(yī)學(xué)圖像的關(guān)鍵信息都包含其中,該部分為高紋理度等級。為了進(jìn)一步增強(qiáng)高紋理度等級的對比度并滿足信息的高嵌入率要求,對高、低紋理度等級的像素點采用不同的嵌入方式。下面將詳細(xì)介紹如何分出高、低紋理度等級。
如圖3所示為CT chest、Thorax、chest的原始圖像;圖4為三幅圖像在紋理度等級從2依次取到8時的像素分布情況。為了便于觀察,白色部分為所有的高紋理度等級合并之后的結(jié)果,而黑色部分為所有的低紋理度等級。
圖4 不同M值時3幅圖像高、低紋理度等級分類
以M=2為例,圖4(a)為M=2時三幅圖像的高、低紋理度等級像素分布情況,白色區(qū)域的紋理度等級為1,黑色區(qū)域的紋理度等級為0。從圖4中可以直觀地觀察出,除去圖像的黑色部分,其余白色部分基本上構(gòu)成了圖像的核心部分,因此本文將構(gòu)成關(guān)鍵部分的紋理度等級定義為高紋理度等級,而構(gòu)成背景部分的紋理度等級定義為低紋理度等級。從圖4中可總結(jié)出高、低紋理度等級的分類方法。
當(dāng)M為偶數(shù)時,有:
(8)
其中:hhigh(n)為紋理度等級大于等于M/2的所有像素點的集合,即高紋理度等級所有像素點的集合;hlow(n)為紋理度等級小于M/2的所有像素點的集合,即低紋理度等級所有像素點的集合。
當(dāng)M為奇數(shù)時,有:
(9)
為了在后續(xù)信息提取時可以分辨出高、低紋理度等級的像素點,在此過程中需要生成一幅全局定位圖(Whole Location Map, WholeLM)對像素點進(jìn)行標(biāo)記,其中,高紋理度等級的像素點標(biāo)記為1,低紋理度等級的像素點標(biāo)記為0,并使用JBIG2的標(biāo)準(zhǔn)(文獻(xiàn)[12])對其進(jìn)行壓縮,壓縮后的定位圖記為WholeLMcompress。
由于醫(yī)學(xué)圖像中含有大量的低紋理度區(qū)域,該區(qū)域不包含圖像的任何關(guān)鍵信息,因此可以考慮使用該部分嵌入大量信息。高紋理度等級包含有大量的圖像關(guān)鍵信息,且紋理度等級越高包含的細(xì)節(jié)信息越多。為了進(jìn)一步增強(qiáng)高紋理度等級的對比度并且滿足高嵌入率的要求,本文對這兩個區(qū)域采用不同的嵌入方式。
為了進(jìn)一步增強(qiáng)高紋理度等級區(qū)域的對比度,本文在拉伸后的圖像灰度直方圖中像素個數(shù)為0的灰度值中嵌入信息,直到所有像素個數(shù)為0的灰度值均嵌滿或滿足信息嵌入量,從而達(dá)到類似于直方圖均衡化的效果。本文按照紋理度等級從高至低的順序嵌入信息,直到所有等級嵌滿為止。在嵌入信息時,需要計算出每一個紋理度等級的直方圖,因此,為了減少后續(xù)直方圖的個數(shù),M一般最高取到8。
按照1.1.3節(jié)介紹的方式區(qū)分出一幅圖像的所有高紋理度等級的像素點后,要對每一個高紋理度等級的像素進(jìn)行嵌入:
h(n)=#{1≤k≤N:n=nk}
(10)
當(dāng)M為偶數(shù)時,n依次取為M-1,M-2,…,M/2,當(dāng)M為奇數(shù)時,n依次取為M-1,M-2,…,(M-1)/2,然后從紋理度M-1到M/2(或(M-1)/2)依次進(jìn)行信息嵌入,具體步驟如下:
1)計算出該等級的灰度直方圖。
2)在所有右側(cè)(i≤126)或左側(cè)(129≤i≤255)灰度值像素個數(shù)為0的灰度值中,選出像素個數(shù)最多的灰度值ipeak,h(ipeak)為灰度值為ipeak的像素點的個數(shù)。
3)將信息嵌入到具有最大像素個數(shù)的灰度值中,對應(yīng)的灰度值為ipeak,為了防止溢出,灰度值ipeak∈[0,126]的像素點向255°方向進(jìn)行嵌入,灰度值ipeak∈[129,255]向0°方向進(jìn)行嵌入,具體操作如下:
(11)
其中:i為原始像素值;i′為嵌入信息之后的像素值,b∈{0,1}是要嵌入的信息;h(i)為灰度值為i的像素點的個數(shù)。
4)重復(fù)步驟2)~3),直到所有的信息嵌入完成。為了后續(xù)提取信息以及恢復(fù)原始像素值,在高紋理度等級進(jìn)行信息嵌入時需要記錄每一輪的具有最大像素個數(shù)的灰度值ipeak,并將其作為秘密信息的一部分嵌入到下一輪中;而最后一輪的灰度值ipeak作為輔助信息的一部分,輔助信息嵌入的詳細(xì)過程見1.2.3節(jié)。
醫(yī)學(xué)圖像低紋理度區(qū)域不包含任何關(guān)鍵信息,因此可以不用考慮該區(qū)域的圖像質(zhì)量嵌入大量信息。由于該區(qū)域灰度值較為單一,因此其預(yù)測誤差較為集中,整體呈現(xiàn)拉普拉斯分布,方差較小。在這種情況下,文獻(xiàn)[10]的方法較為適合,所以在低紋理度區(qū)域本文采用改進(jìn)的文獻(xiàn)[10]的方法進(jìn)行信息嵌入。
需要注意的是,如圖5所示,文獻(xiàn)[10]的方法是用“o”像素點的值計算出所“×”像素點的預(yù)測誤差。如圖5所示,ui,j的預(yù)測值可以通過其周圍的四個“o”類型像素點求得,方法如下:
ui,j′=(vi,j-1+vi+1,j+vi,j+1+vi-1,j)/4
(12)
若vi,j-1高紋理度等級,在計算ui,j′時,使用的是未進(jìn)行信息嵌入的vi,j-1。
圖5 菱形預(yù)測
首先選出兩個閾值Tn和Tp,預(yù)測誤差在區(qū)間[Tn,Tp]內(nèi)用來嵌入信息,將不在區(qū)間內(nèi)的預(yù)測誤差進(jìn)行平移,以便為信息嵌入留出足夠的空間。本文選取的閾值Tn和Tp分別為在預(yù)測誤差小于零時最大像素個數(shù)的預(yù)測誤差值以及大于等于零時最大像素個數(shù)的預(yù)測誤差值。b∈{0,1}是要嵌入的信息,按照式(13)進(jìn)行信息嵌入:
(13)
其中:di,j為原始預(yù)測誤差,Di,j是修正后的預(yù)測誤差。嵌入完成之后,初始像素值ui,j被修正為Ui,j:
Ui,j=Di,j+ui,j′
(14)
值得注意的是,由于文獻(xiàn)[10]的方法本身適用于嵌入率小于1的情景,因此為了滿足高嵌入率的要求,本文在低紋理度區(qū)域進(jìn)行多輪預(yù)測誤差直方圖平移嵌入,直到滿足要求的嵌入率。在嵌入過程中,若有溢出點,產(chǎn)生一幅溢出定位圖(Location Map for Overlapping, LMO)來標(biāo)記所有會造成灰度溢出的點。比如原灰度值為0或255,嵌入信息之后會被修正為-1或256,這些像素點在定位圖中標(biāo)記為1,其余為0。然后按照J(rèn)BIG2的標(biāo)準(zhǔn)(文獻(xiàn)[12])對LMO進(jìn)行壓縮,壓縮后的定位圖記為LMOcompress。
在信息嵌入時,本文將所有的低紋理度等級合并成一個等級進(jìn)行信息嵌入,而對每一個高紋理度等級分別進(jìn)行信息嵌入。為了在信息提取以及圖像恢復(fù)時區(qū)分出高低紋理度等級以及高紋理度等級中每一個等級的像素點,在嵌入過程中需要生成一些輔助信息。另外,圖像四周區(qū)域幾乎不包含任何關(guān)鍵信息,假設(shè)圖像尺寸為m*n,本文將輔助信息嵌入到這些最外周h行以及h列的像素點中(詳見第2)部分)輔助信息嵌入。需要注意的是,對這些像素點不作紋理度分級處理,既不包含在高紋理度等級中,也不包含在低紋理度等級中。
1)輔助信息內(nèi)容。
在可逆信息隱藏中,為了后續(xù)信息提取以及原始圖像恢復(fù),一些必要的輔助信息需要嵌入到原始圖像中。
輔助信息主要有:
①在圖像對比度增強(qiáng)以及像素紋理度分級過程中,需要記錄的有紋理度等級M、拉伸前的灰度最大值umax和最小值umin、拉伸后的灰度最大值Lmax和最小值Lmin,以及壓縮后的全局定位圖WholeLMcompress。
②高紋理度等級信息嵌入時,每一個等級在嵌入時最后一輪的ipeak,以及壓縮后的「M/4?(若M為奇數(shù),則需要「(M+1)/4?,「·?表示向上取整)幅局部定位圖(Part Location Map, PartLM),壓縮后的表示為PartLMcompress,局部定位圖的目的是區(qū)分所有高紋理度等級中每一個等級的像素點。
生成局部定位圖PartLM的方法如下:以M=8為例,此時需要區(qū)分的高等級為第4、5、6、7等級的像素點,共需要產(chǎn)生8/4=2幅局部定位圖PartLM1以及PartLM2;則在這兩幅局部定位圖中,各位置坐標(biāo)標(biāo)記方法如圖6所示,圖6(a)為第一幅局部定位圖PartLM1,圖6(b)為局部定位圖PartLM2。將圖6中的結(jié)果整理到表1中,在第三行二進(jìn)制中,把PartLM1作為二進(jìn)制的最高位,PartLM2作為二進(jìn)制的次高位(此處為最低),若還有PartLM3,則把它作為二進(jìn)制的最低位。簡而言之,PartLM1作為二進(jìn)制最高位,然后依次遞減。通過這種方法,可以有效減少定位圖的數(shù)量,從而減少輔助信息。
圖6 M=8時局部定位示意圖
③在低紋理度等級嵌入過程中產(chǎn)生的壓縮后的溢出定位圖LMOcompress以及閾值Tn和Tp。
④在輔助信息進(jìn)行嵌入時,采用的是多輪直方圖平移的方法,因此采用最低有效位(Least Significant Bit, LSB)替換的方法將嵌入的輪數(shù)L以及最后一輪的具有最大像素個數(shù)的灰度值嵌入到第一行的前16個像素點中,而前L-1輪的具有最大像素個數(shù)的灰度值也將作為輔助信息的一部分。
表1 M=8時局部定位圖定義
2)輔助信息嵌入。
由于圖像進(jìn)行直方圖拉伸之后,最外周的像素值大多數(shù)為Lmin并且不包含任何關(guān)鍵信息,采用直方圖向255的方向平移的方法可以有效避免溢出,因此本文采用多輪直方圖平移的方式將輔助信息嵌入到最外周h行以及h列的像素點(如圖7所示)中。具體步驟如下:
①取前16個像素點的最低有效位構(gòu)成序列SLSB。
②計算出最外周h行h列的像素點的灰度直方圖(排除前16個像素),找出灰度直方圖中具有最大像素個數(shù)的灰度值Ipeak,灰度值大于Ipeak的向右平移,以便為信息嵌入留出空間,灰度值小于Ipeak的保持不變,并按照式(15)進(jìn)行嵌入:
(15)
其中:MAuxiliary∈{0,1}為要嵌入的信息;i為原始灰度值;i′為嵌入信息后的灰度值。
③重復(fù)L次步驟②直到所有的輔助信息嵌入完成。
在嵌入過程中,為了后續(xù)提取出這些輔助信息并恢復(fù)這些原始像素值,需要記錄每一輪具有最大像素個數(shù)的灰度值Ipeak,其中:前一輪的Ipeak作為輔助信息的一部分在下一輪嵌入;最后一輪的Ipeak以及h各自用8 b的信息表示,用來替代前16個像素的最低有效位;SLSB作為輔助信息的一部分在最后一輪進(jìn)行嵌入。
圖7 圖像四周用來嵌入輔助信息的像素點
1.1節(jié)以及1.2節(jié)介紹了圖像的對比度增強(qiáng)過程、紋理度分級以及信息的嵌入過程。提取過程與嵌入過程相反,首先提取出輔助信息,然后根據(jù)輔助信息先恢復(fù)高紋理度等級的像素并提取出秘密信息,再恢復(fù)低紋理度等級的像素并提取出秘密信息,最后恢復(fù)拉伸前的圖像。秘密信息提取以及原始圖像恢復(fù)的具體過程如下:
1)提取出圖像第一行前16個像素的最低有效位,從而得到最后一輪具有最大像素個數(shù)的灰度值Ipeak以及h。
2)通過式(16)提取出最后一輪嵌入的輔助信息,其中包括L、前1輪的灰度值Ipeak以及前16個像素點的最低有效位序列SLSB,然后根據(jù)式(17)恢復(fù)像素值:
(16)
(17)
3)再重復(fù)使用L-1次式(16)和(17)可以恢復(fù)出在外周像素點中嵌入的所有輔助信息,其中包括WholeLMcompress、PartLMcompress、高紋理度等級中每個等級的最后一輪嵌入時具有最大像素個數(shù)的灰度值ipeak、低紋理度等級中的溢出定位圖LMOcompress等,然后將SLSB中的值代替前16個像素的最低有效位,這樣最外周的像素就得以恢復(fù)并提取出了所有的輔助信息。
4)將WholeLMcompress、PartLMcompress解壓,根據(jù)WholeLM分辨出高低紋理度等級的像素點,根據(jù)PartLM分辨出每一個高紋理度等級的像素點,根據(jù)像素點對應(yīng)等級中的每一個ipeak按式(18)恢復(fù)未嵌入信息的像素值,同時按式(19)提取出嵌入的秘密信息:
(18)
(19)
5)根據(jù)解壓后的溢出定位圖、Tn以及Tp恢復(fù)低紋理度等級的像素值并提取出秘密信息。首先根據(jù)式(20)計算出此時像素點的預(yù)測誤差,根據(jù)嵌入信息之后的預(yù)測誤差可以按照式(21)提取出秘密信息;然后根據(jù)輔助信息中的閾值Tn、Tp和式(22)恢復(fù)對比度增強(qiáng)之后的預(yù)測誤差;根據(jù)預(yù)測誤差以及預(yù)測值,利用式(23)可以恢復(fù)對比度增強(qiáng)之后的像素值。
Di,j=Ui,j-ui,j′
(20)
b=Di,jmod 2
(21)
(22)
ui,j=ui,j′+di,j
(23)
6)根據(jù)輔助信息中拉伸前的灰度最大值umax和最小值umin、拉伸后的最大值Lmax和最小值Lmin,使用式(2)恢復(fù)拉伸前的像素值。
實驗過程中采用了大量的醫(yī)學(xué)圖像進(jìn)行測試,由于篇幅限制,隨機(jī)選出chest圖像(如圖3(c))來說明實驗結(jié)果以及主觀的觀察結(jié)果。為了說明本文的對比度增強(qiáng)效果能夠不依賴嵌入率并且利用紋理度可有效將醫(yī)學(xué)圖像的關(guān)鍵部分與背景部分區(qū)分開,首先介紹了在不同紋理度等級和不同嵌入率下的實驗結(jié)果以及各類參數(shù)評價結(jié)果;然后比較了文獻(xiàn)[13]中使用的傳統(tǒng)分割算法與本文中高、低紋理度等級分割算法對醫(yī)學(xué)圖像分割的實驗結(jié)果;最后在不同嵌入率下與其他同樣具有對比度增強(qiáng)效果的可逆信息隱藏方法進(jìn)行對比。
紋理度等級劃分的不同,其像素的分布也有所不同,這就導(dǎo)致了不同紋理度等級下的載密圖像有所不同。本節(jié)著重介紹了在不同紋理度等級劃分下算法的性能以及與傳統(tǒng)分割方法相比對醫(yī)學(xué)圖像關(guān)鍵部分的分割效果。
圖8為chest圖像在嵌入率分別為0.1 bpp、1 bpp以及2 bpp,且紋理度等級M分別取2、3、4、5、6、7和8時的載密圖像,其中:bpp(bit per pixel)為每個像素值嵌入的比特量。從這些載密圖像中可以直觀地總結(jié)出在同一個紋理度等級下,嵌入率為0.1 bpp、1 bpp以及2 bpp時原始圖像對比度均得到了有效增強(qiáng),這是因為本文首先對圖像作了直方圖拉伸。從圖8中可以發(fā)現(xiàn),在嵌入率相同時,人類視覺系統(tǒng)無法判斷出M取何值時圖像質(zhì)量最好。
圖8 不同M值、不同嵌入率時的chest載密圖像對比
由于人類視覺會受到多種因素的影響,因此本文采用文獻(xiàn)[14]中的無參圖像質(zhì)量評價(No-Reference Contrast-Distorted Images Quality Assessment, NR-CDIQA)參數(shù)作為選擇最佳紋理度等級M的標(biāo)準(zhǔn)。NR-CDIQA是一種基于機(jī)器學(xué)習(xí)計算的針對圖像對比度失真的無參考圖像質(zhì)量評價方法,具有較高的統(tǒng)計意義,可以用來高效地評價對比度失真圖像的質(zhì)量。NR-CDIQA的值越高,代表圖像質(zhì)量越好。當(dāng)嵌入率固定時,NR-CDIQA的最大值對應(yīng)的紋理度等級為最佳紋理度等級M。如圖8第1行,在嵌入率為0.1 bpp時,M從2取到8時的NR-CDIQA的值分別為2.188 3,2.326 4,2.329 0,2.333 3,2.355 4,2.375 7和2.730 7;圖8第2行為嵌入率在1 bpp時,M從2取到8的載密圖像,其NR-CDIQA分別為3.248 3,3.246 2,3.240 0,3.240 8,3.233 2,3.236 5和3.237 7;圖8第3行是嵌入率在2 bpp時,M從2取到8的載密圖像,其NR-CDIQA分別為3.279 9,3.290 5,3.282 5,3.290 3,3.284 6,3.293 2,3.280 4。根據(jù)NR-CDIQA的值可以得到chest圖像的最佳紋理度等級劃分,嵌入率為0.1 bpp、1 bpp以及2 bpp時的最佳紋理度等級分別為8、2和7。在2.2節(jié)的對比實驗中,本文方法使用的是最佳紋理度等級的結(jié)果。
為了比較本文方法與使用傳統(tǒng)分割算法的可逆信息隱藏方法的優(yōu)劣,將本文方法對醫(yī)學(xué)圖像的分割結(jié)果與采用傳統(tǒng)分割算法的可逆信息隱藏方法進(jìn)行對比。圖9為當(dāng)紋理度等級M=2時本文方法與文獻(xiàn)[13]中的分割方法對chest圖像關(guān)鍵部分的提取結(jié)果。圖9(a)中的白色區(qū)域為文獻(xiàn)[13]中使用傳統(tǒng)算法分割的醫(yī)學(xué)圖像的感興趣區(qū)域(Region Of Interest, ROI);圖9(b)中的白色區(qū)域為使用本方法分割出的高紋理度等級區(qū)域。由于文獻(xiàn)[13]中分割算法的局限性,非感興趣區(qū)域(Region Of Non-Interest, NROI)區(qū)域(如圖9(a)中的黑色實線矩陣區(qū)域)仍然包含圖像的關(guān)鍵信息;而ROI不僅不能完全包含醫(yī)學(xué)圖像的關(guān)鍵信息,而且還包含大量灰度值單一的區(qū)域(如圖9(a)中的黑色虛線矩陣區(qū)域),這些像素點本應(yīng)劃分到NROI中。由此可見,對于某些圖像,傳統(tǒng)的分割算法并不能完全正確地將ROI和NROI區(qū)分開。相比而言,本文采用的紋理度等級劃分方法則能更好地區(qū)分出兩種區(qū)域,從而對醫(yī)學(xué)圖像的關(guān)鍵部分劃分更加準(zhǔn)確;并且由于本方法僅僅使用像素的紋理度便將醫(yī)學(xué)圖像的關(guān)鍵區(qū)域提取出來,過程更加簡單高效。
圖9 兩種分割方法對圖像的分割結(jié)果對比
為了進(jìn)一步驗證本文方法的有效性,將本文方法與其他同樣具有對比度增強(qiáng)效果的可逆信息隱藏方法對比,包括文獻(xiàn)[7-9]以及文獻(xiàn)[13]的方法。為了展現(xiàn)出在不同嵌入率下的實驗效果,給出了嵌入率分別在0.1 bpp、1 bpp以及2 bpp下的實驗結(jié)果。
圖10為chest圖像在不同嵌入率下使用文獻(xiàn)[7-9,13]方法以及本文方法(最佳紋理度等級)的載密圖像。從主觀上看,在嵌入率為0.1 bpp時,文獻(xiàn)[7]的方法以及文獻(xiàn)[8]的方法的圖像對比度增強(qiáng)效果并不明顯,文獻(xiàn)[13]方法的ROI與NROI的交界處產(chǎn)生明顯差別;在嵌入率為2 bpp時,文獻(xiàn)[7-8]的方法均產(chǎn)生了明顯失真;而在不同嵌入率下,本文均得到了比較好的結(jié)果。
表2是圖10對應(yīng)的客觀圖像質(zhì)量評價結(jié)果,包括峰值信噪比(PSNR)、結(jié)構(gòu)相似性(Structural SIMilarity index, SSIM)[15]以及針對對比度變化的無參圖像質(zhì)量評價(NR-CDIQA)[14]等三個指標(biāo)評價最終的載密圖像。其中PSNR和SSIM是兩種比較傳統(tǒng)的圖像質(zhì)量評價參數(shù),PSNR是最普遍和使用最為廣泛的一種圖像客觀評價指標(biāo),然而它是基于對應(yīng)像素點間的誤差,即基于誤差敏感的圖像質(zhì)量評價,并未考慮到人眼的視覺特性,所以經(jīng)常出現(xiàn)評價結(jié)果與人的主觀感覺不一致的情況;SSIM函數(shù)是一種全參考的圖像質(zhì)量評價指標(biāo),其中的結(jié)構(gòu)比較函數(shù)反映了圖像的結(jié)構(gòu)特征,然而SSIM也存在一些不足,比如忽略了對人類視覺系統(tǒng)的底層視覺特性,簡單的線性建模難以描述高層視覺的圖像結(jié)構(gòu)信息。由于本文首先對圖像進(jìn)行直方圖拉伸提高對比度,故而對原始圖像像素值的改變較大,而PSNR和SSIM是基于原始圖像計算的評價結(jié)果,因此本文的PSNR和SSIM值均低于其他方法。而NR-CDIQA是一種基于機(jī)器學(xué)習(xí)計算的無參圖像質(zhì)量評價方法,主要針對于對比度失真圖像,具有較高的統(tǒng)計意義,可以用來高效地評價對比度失真圖像的質(zhì)量,因此NR-CDIQA更能反映出圖像的對比度失真情況,NR-CDIQA的值越高,代表圖像質(zhì)量越好。從表2中的數(shù)據(jù)來看,本文的NR-CDIQA基本都高于其他對比方法,即無論從主觀還是客觀來看,本文方法的結(jié)果均優(yōu)于對比方法。
圖10 chest在不同嵌入率下使用不同方法的載密圖像
Tab. 2 Evaluation results of marked-images’
究其原因,這是由于文獻(xiàn)[7]的方法是選出圖像灰度直方圖中具有最大像素個數(shù)的兩個灰度值嵌入信息,而醫(yī)學(xué)圖像中含有大量灰度單一的像素值,因此該方法會優(yōu)先使用低紋理度的像素點進(jìn)行信息嵌入,因此當(dāng)信息的嵌入量較少時,直方圖平移的輪數(shù)較少,因此圖像的對比度沒有得到有效增強(qiáng)。文獻(xiàn)[8]的方法是在空間域和小波變換域分別嵌入信息,空間域的嵌入方法是在文獻(xiàn)[7]的基礎(chǔ)上選用了一個參數(shù)控制對比度增強(qiáng)的效果,因此在低嵌入率下,載密圖像對比度增強(qiáng)效果并不明顯。文獻(xiàn)[9]的方法是選取圖像的預(yù)測誤差直方圖兩側(cè)的預(yù)測誤差進(jìn)行嵌入,這是由于預(yù)測誤差直方圖兩側(cè)的預(yù)測誤差較大,即對應(yīng)圖像中紋理度較高的區(qū)域,從而實現(xiàn)對比度增強(qiáng)的目的,然而該方法未能較好地從灰度上增強(qiáng)圖像的對比度,在高嵌入率下,載密圖像的對比度增強(qiáng)效果并不明顯。文獻(xiàn)[13]的方法采用的是傳統(tǒng)分割算法來劃分ROI和NROI,前面已通過實驗驗證了本文的紋理度等級劃分對醫(yī)學(xué)圖像的關(guān)鍵部分劃分更加準(zhǔn)確,當(dāng)M=2時,本文與文獻(xiàn)[13]結(jié)果非常接近,這是由于高紋理度區(qū)域只包含一個等級。為了在低嵌入率下圖像對比度也能得到顯著增強(qiáng),本文首先對圖像作了直方圖拉伸。為了將醫(yī)學(xué)圖像的關(guān)鍵部分與其他部分區(qū)分開,本文進(jìn)一步利用像素的紋理度將圖像分為高紋理度等級和低紋理度等級兩部分。另外高紋理度等級包含醫(yī)學(xué)圖像的關(guān)鍵信息,因此為了進(jìn)一步增強(qiáng)高紋理度等級的對比度,本文對高紋理度等級采用了一種具有直方圖均衡化效果的方法進(jìn)行信息嵌入;而低紋理度等級不包含任何的關(guān)鍵信息,即灰度值單一,因此本文采用改進(jìn)的文獻(xiàn)[10]方法進(jìn)行信息嵌入,以此滿足信息高嵌入率的要求。通過以上操作,無論嵌入率為0.1 bpp、1 bpp或者2 bpp,本文方法的NR-CDIQA明顯大于其他方法。
針對目前可逆信息隱藏方法的對比度增強(qiáng)效果受嵌入率的影響問題,本文提出了一種基于多紋理度劃分的具有對比度增強(qiáng)效果的醫(yī)學(xué)圖像可逆信息隱藏方法。本文首先對醫(yī)學(xué)圖像整體進(jìn)行對比度拉伸操作,從而得到較好的對比度增強(qiáng)效果;然后再根據(jù)醫(yī)學(xué)圖像紋理度的自身特點,將醫(yī)學(xué)圖像劃分為高、低兩類紋理度等級;最后為了進(jìn)一步增強(qiáng)高紋理度等級部分的對比度,對高紋理度等級采用一種具有類似直方圖均衡化效果的方法進(jìn)行信息嵌入,而為了實現(xiàn)高嵌入容量的需求,對低紋理度等級區(qū)域使用改進(jìn)的文獻(xiàn)[10]方法進(jìn)行信息嵌入。通過以上操作,本文可以實現(xiàn)一種不依賴嵌入率的、具有高嵌入容量特性的對比度增強(qiáng)可逆信息隱藏算法。實驗結(jié)果表明,與其他具有對比度增強(qiáng)效果的可逆信息隱藏方法相比,無論在低嵌入率或高嵌入率下,本文方法均可以顯著實現(xiàn)載密圖像的對比度增強(qiáng)效果。本文方法的對比度增強(qiáng)過程與信息嵌入過程是相互獨立的,故而下一步的工作將繼續(xù)尋找一種能同時實現(xiàn)對比度增強(qiáng)的信息嵌入方法,并且嘗試將其他的圖像處理操作與可逆信息隱藏相結(jié)合,實現(xiàn)一種能夠保護(hù)圖像安全的可逆信息隱藏算法。