一種基于直方圖的魯棒信息隱藏傳輸方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于直方圖的魯棒信息隱藏傳輸方法,主要用來(lái)在圖像中進(jìn)行無(wú)損信息隱藏。目前典型的無(wú)損信息隱藏算法是基于直方圖移位的方法,該方法會(huì)因?yàn)閳D像壓縮或圖像傳輸?shù)牟铄e(cuò)造成秘密信息無(wú)法提取,完全不具備魯棒性。本發(fā)明提出了一種全新的方法,通過(guò)尋找直方圖峰值、搜索魯棒區(qū)間、進(jìn)行直方圖峰值點(diǎn)本身的替換等處理,不需要直方圖移位,使得直方圖方法具有了明顯的魯棒性,能對(duì)抗2~8倍JPEG2000方法的壓縮。該方法復(fù)雜度低,易于實(shí)現(xiàn),有利于提取信息后載體圖像的高質(zhì)量恢復(fù)。
【專(zhuān)利說(shuō)明】一種基于直方圖的魯棒信息隱藏傳輸方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種圖像通信的方法,特別涉及一種信息隱藏傳輸?shù)姆椒ǎ瑢儆谕ㄐ?如數(shù)據(jù)通信技術(shù)等)領(lǐng)域。
【背景技術(shù)】
[0002]隨著科技的發(fā)展,圖像數(shù)據(jù)傳輸效率以及傳輸?shù)陌踩宰兊迷絹?lái)越重要。通過(guò)信息隱藏(也稱(chēng)數(shù)據(jù)隱藏)技術(shù)可以做到在不改變圖像大小的情況下,在圖像中嵌入秘密信息進(jìn)行傳輸,從而實(shí)現(xiàn)秘密信息和圖像的傳輸。
[0003]對(duì)于遙感圖像、醫(yī)學(xué)圖像和法律圖像等要求在提取秘密信息后載體圖像能夠盡可能的恢復(fù)。在此需求下產(chǎn)生了可逆信息隱藏算法,也稱(chēng)無(wú)損信息隱藏算法。無(wú)損信息隱藏算法不僅可以正確提取秘密信息,還能無(wú)損的恢復(fù)載體圖像。
[0004]目前典型的無(wú)損信息隱藏算法是基于直方圖移位的方法。但基于直方圖移位的方法要求隱藏秘密信息的含密圖像在傳輸過(guò)程中不能發(fā)生變化,即使發(fā)生很小的變化,接收端也不能正確的提取秘密信息。然而隨著圖像分辨率的提高,圖像傳輸前往往要采用數(shù)據(jù)壓縮技術(shù)(最有代表性的是JPEG2000圖像壓縮標(biāo)準(zhǔn))對(duì)圖像進(jìn)行有損壓縮,從而造成圖像特性的改變,使直方圖移位的方法不能正確的提取信息。也就是說(shuō),目前基于直方圖移位的信息隱藏方法會(huì)因?yàn)閳D像傳輸時(shí)的改變?cè)斐擅孛苄畔o(wú)法提取,完全不具備魯棒性。
【發(fā)明內(nèi)容】
[0005]本發(fā)明解決的技術(shù)問(wèn)題是:克服現(xiàn)有技術(shù)的不足,提供一種基于直方圖的魯棒信息隱藏傳輸方法,解決了常規(guī)直方圖移位信息隱藏算法不具備魯棒性的問(wèn)題。
[0006]本發(fā)明的技術(shù)方案是:一種基于直方圖的魯棒信息隱藏傳輸方法,步驟如下:
[0007]I)獲得待處理的輸入圖像的像素統(tǒng)計(jì)直方圖,令X代表輸入圖像的灰度值,X e [0,255],$h(x)代表輸入圖像的統(tǒng)計(jì)直方圖中取值為X的樣本個(gè)數(shù);設(shè)直方圖的峰值為h (p),峰值點(diǎn)灰度值為P ;
[0008]2)設(shè)置d為魯棒區(qū)間的門(mén)限值,d≥I ;設(shè)置直方圖值的門(mén)限T,T初始值為0,尋找魯棒區(qū)間A和B ;
[0009]21)在[0,255]區(qū)間內(nèi)搜索直方圖h (X),把其中h (X)≥T對(duì)應(yīng)的x放入集合SI中;將集合Si中元素從小到大排列得到集合S,集合S中的元素個(gè)數(shù)為k ;
[0010]22)尋找集合S中的最大的兩個(gè)連續(xù)區(qū)間A和B,其中區(qū)間A和區(qū)間B內(nèi)的元素按自然數(shù)規(guī)律遞增,區(qū)間A和區(qū)間B的長(zhǎng)度分別為dl和d2,其中dl ^ d2 ;若集合S中只存在一個(gè)連續(xù)區(qū)間則將該區(qū)間分成A和B兩個(gè)區(qū)間:當(dāng)k為偶數(shù)時(shí),dl=d2=k/2 ;當(dāng)k為奇數(shù)時(shí),dl=(k+l)/2, d2=(k-l)/2 ;若d2〈d,則T=T+1,返回步驟21 ),重新尋找區(qū)間A和區(qū)間B ;若d2≥d,則將此時(shí)的區(qū)間A和區(qū)間B作為尋找出的魯棒區(qū)間A和魯棒區(qū)間B ;
[0011]3)將魯棒區(qū)間A、B內(nèi)的直方圖不為O的灰度值分別改為yl、y2,所述的yl、y2分別為距離區(qū)間A、B最近的灰度值;設(shè)區(qū)間A內(nèi)1/2位置對(duì)應(yīng)的灰度值為Si,區(qū)間B內(nèi)1/2位置對(duì)應(yīng)的灰度值為s2 ;
[0012]4)將經(jīng)過(guò)步驟3)變更后的新的輸入圖像內(nèi)的像素進(jìn)行掃描,搜索灰度值為P的點(diǎn)并且將灰度值為P的點(diǎn)定義為信息嵌入點(diǎn);若待嵌入信息為1,則將該信息嵌入點(diǎn)的值置為Si,若待嵌入信息為0,則將該信息嵌入點(diǎn)的值為s2 ;直至所有信息嵌入點(diǎn)都嵌入信息;
[0013]5)信息接收端接收含有嵌入信息的輸入圖像,并生成統(tǒng)計(jì)直方圖;
[0014]6)設(shè)含有嵌入信息的輸入圖像中嵌入信息為I的數(shù)量為NI,R=O, N1、R為均正整數(shù);計(jì)算獲得灰度值區(qū)間[sl-R,sl+R]之間像素的個(gè)數(shù)m,若m〈Nl,則R=R+1,重復(fù)計(jì)算灰度值區(qū)間[sl-R, sl+R]之間像素的個(gè)數(shù),直到m ^ NI ;此時(shí)的灰度值區(qū)間[sl-R, sl+R]為嵌入信息為I的直方圖區(qū)間;設(shè)含有嵌入信息的輸入圖像中嵌入信息為O的數(shù)量為NO,L=O, NO、L均為正整數(shù);計(jì)算獲得灰度值區(qū)間[sO-L,sO+L]之間像素的個(gè)數(shù)n,若η〈Ν0,則L=L+1,重復(fù)計(jì)算灰度值區(qū)間[sO-L, sO+L]之間像素的個(gè)數(shù)n,直到η≥NO,此時(shí)的灰度值區(qū)間[sO_L, sO+L]為嵌入彳目息為O的直方圖區(qū)間;
[0015]7)掃描含有嵌入信息的輸入圖像像素,若當(dāng)前灰度值X e [sl_R,sl+R],則提取嵌入/[目息I,并恢復(fù)原像素X=P ;若當(dāng)如灰度值X e [sO-L, sO+L],則提取嵌入彳目息O,并恢復(fù)原像素X=p ;其他情況X保持不變;最終恢復(fù)原輸入圖像并提取嵌入信息。
[0016]本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是:
[0017](I)目前方法需要將位于直方圖峰值點(diǎn)和零值點(diǎn)的像素都移位,本發(fā)明采用的隱藏方法首次采用峰值點(diǎn)像素替換的策略,避免了大量像素的移位;
[0018](2)目前方法 只利用了圖像直方圖存在的單個(gè)零值點(diǎn),本發(fā)明采用替換策略產(chǎn)生了呈連續(xù)區(qū)間的零值點(diǎn),并充分利用該特點(diǎn)提高了直方圖算法的性能;本發(fā)明在圖像直方圖中搜索魯棒區(qū)間,信息的隱藏處于魯棒區(qū)間中,使基于直方圖的隱藏方法具備了魯棒性;
[0019](3)本發(fā)明在提取信息時(shí),魯棒區(qū)間內(nèi)的像素都是峰值點(diǎn)像素,在提取后峰值點(diǎn)像素均可以恢復(fù),提高了載體圖像的恢復(fù)質(zhì)量;
[0020](4)本發(fā)明嵌入信息后,含密圖像中不存在位于直方圖峰值點(diǎn)的像素,如果在提取秘密信息是發(fā)現(xiàn)仍有像素位于直方圖的峰值點(diǎn),說(shuō)明含密圖像已被改變。因此,本發(fā)明提供了一種檢測(cè)圖像灰度值改變的方法;
[0021](5)本發(fā)明嵌入信息后,由于含密圖像中不存在位于直方圖峰值點(diǎn)的像素,因此若在提取秘密信息時(shí)發(fā)現(xiàn)仍有像素位于峰值點(diǎn),則說(shuō)明該像素的值是由相近的灰度值改變而來(lái)的,此種情況可以利用原始載體圖像的局部相關(guān)性,在恢復(fù)時(shí)根據(jù)原始載體圖像的相鄰像素相關(guān)性進(jìn)行預(yù)測(cè)、插值進(jìn)行圖像恢復(fù),恢復(fù)原始灰度值,提高載體圖像恢復(fù)質(zhì)量;
[0022]( 6 )目前方法直方圖的移位幾乎涉及到圖像所有像素,實(shí)現(xiàn)復(fù)雜,本發(fā)明只改變位于峰值點(diǎn)的像素,復(fù)雜度低,易于實(shí)現(xiàn),改變像素少也有利于提取信息后載體圖像質(zhì)量的恢復(fù)。
[0023](7)本發(fā)明嵌入信息后,含密圖像中不再存在值為直方圖峰值的像素,在提取信息時(shí),可以根據(jù)含密圖像直方圖估計(jì)峰值點(diǎn),解決了峰值點(diǎn)傳輸?shù)膯?wèn)題。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0024]圖1為本發(fā)明流程圖?!揪唧w實(shí)施方式】
[0025]下面就結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步介紹。
[0026]本發(fā)明一種基于直方圖的魯棒信息隱藏傳輸方法,步驟如下:
[0027]I)獲得待處理的輸入圖像的像素統(tǒng)計(jì)直方圖,令X代表輸入圖像的灰度值,X e [0,255],$h(x)代表輸入圖像的統(tǒng)計(jì)直方圖中取值為X的樣本個(gè)數(shù);設(shè)直方圖的峰值為h (p),峰值點(diǎn)灰度值為P ;
[0028]2)設(shè)置d為魯棒區(qū)間的門(mén)限值,d≥I ;設(shè)置直方圖值的門(mén)限T,T初始值為0,尋找魯棒區(qū)間A和B ;
[0029]21)在[0,255]區(qū)間內(nèi)搜索直方圖h (X),把其中h (X)≤T對(duì)應(yīng)的x放入集合SI中;將集合Si中元素從小到大排列得到集合S,集合S中的元素個(gè)數(shù)為k ;
[0030]22)尋找集合S中的最大的兩個(gè)連續(xù)區(qū)間A和B,其中區(qū)間A和區(qū)間B內(nèi)的元素按自然數(shù)規(guī)律遞增,區(qū)間A和區(qū)間B的長(zhǎng)度分別為dl和d2,其中dl ^ d2 ;若集合S中只存在一個(gè)連續(xù)區(qū)間則將該區(qū)間分成A和B兩個(gè)區(qū)間:當(dāng)k為偶數(shù)時(shí),dl=d2=k/2 ;當(dāng)k為奇數(shù)時(shí),dl=(k+l)/2, d2=(k-l)/2 ;若(12〈(1,則T=T+1,返回步驟21),重新尋找區(qū)間A和區(qū)間B ;若d2≥d,則將此時(shí)的區(qū)間A和區(qū)間B作為尋找出的魯棒區(qū)間A和魯棒區(qū)間B ;
[0031]3)將魯棒區(qū)間A、B內(nèi)的直方圖不為O的灰度值分別改為yl、y2,所述的yl、y2分別為距離區(qū)間A、B最近的灰度值;設(shè)區(qū)間A內(nèi)1/2位置對(duì)應(yīng)的灰度值為Si,區(qū)間B內(nèi)1/2位置對(duì)應(yīng)的灰度值為s2 ;
[0032]4)將經(jīng)過(guò)步驟3)變更后的新的輸入圖像內(nèi)的像素進(jìn)行掃描,搜索灰度值為P的點(diǎn)并且將灰度值為P的點(diǎn)定義為信息嵌入點(diǎn);若待嵌入信息為1,則將該信息嵌入點(diǎn)的值置為Si,若待嵌入信息為0,則將該信息嵌入點(diǎn)的值為s2 ;直至所有信息嵌入點(diǎn)都嵌入信息;
[0033]5)信息接收端接收含有嵌入信息的輸入圖像,并生成統(tǒng)計(jì)直方圖;
[0034]6)設(shè)含有嵌入信息的輸入圖像中嵌入信息為I的數(shù)量為NI,R=O, N1、R為均正整數(shù);計(jì)算獲得灰度值區(qū)間[sl-R,sl+R]之間像素的個(gè)數(shù)m,若m〈Nl,則R=R+1,重復(fù)計(jì)算灰度值區(qū)間[sl-R, sl+R]之間像素的個(gè)數(shù),直到m ^ NI ;此時(shí)的灰度值區(qū)間[sl-R, sl+R]為嵌入信息為I的直方圖區(qū)間;設(shè)含有嵌入信息的輸入圖像中嵌入信息為O的數(shù)量為NO,L=O, NO、L均為正整數(shù);計(jì)算獲得灰度值區(qū)間[sO-L,sO+L]之間像素的個(gè)數(shù)n,若η〈Ν0,則L=L+1,重復(fù)計(jì)算灰度值區(qū)間[sO-L, sO+L]之間像素的個(gè)數(shù)n,直到η≥NO,此時(shí)的灰度值區(qū)間[sO_L, sO+L]為嵌入彳目息為O的直方圖區(qū)間;
[0035]7)掃描含有嵌入信息的輸入圖像像素,若當(dāng)前灰度值X e [sl-R, sl+R],則提取嵌入/[目息I,并恢復(fù)原像素X=P ;若當(dāng)如灰度值X e [sO-L, sO+L],則提取嵌入彳目息O,并恢復(fù)原像素X=p ;其他情況X保持不變;最終恢復(fù)原輸入圖像并提取嵌入信息。
[0036]為了驗(yàn)證本文提出的算法的性能,實(shí)驗(yàn)采用了多幅大小為512X512的8比特灰度圖像進(jìn)行了仿真。隱藏容量以bit為單位;圖像質(zhì)量的衡量采用峰值信噪比(PSNR),單位為dB.[0037]仿真結(jié)果如下表所示:[0038]
【權(quán)利要求】
1.一種基于直方圖的魯棒信息隱藏傳輸方法,其特征在于步驟如下: O獲得待處理的輸入圖像的像素統(tǒng)計(jì)直方圖,令X代表輸入圖像的灰度值,X e [O,255],令h (X)代表輸入圖像的統(tǒng)計(jì)直方圖中取值為X的樣本個(gè)數(shù);設(shè)直方圖的峰值為h (p),峰值點(diǎn)灰度值為P ; 2)設(shè)置d為魯棒區(qū)間的門(mén)限值,I;設(shè)置直方圖值的門(mén)限T,T初始值為O,尋找魯棒區(qū)間A和B ; 21)在[O,255]區(qū)間內(nèi)搜索直方圖h(x),把其中h(x)≤T對(duì)應(yīng)的X放入集合SI中;將集合SI中元素從小到大排列得到集合S,集合S中的元素個(gè)數(shù)為k ; 22)尋找集合S中的最大的兩個(gè)連續(xù)區(qū)間A和B,其中區(qū)間A和區(qū)間B內(nèi)的元素按自然數(shù)規(guī)律遞增,區(qū)間A和區(qū)間B的長(zhǎng)度分別為dl和d2,其中dl ^ d2 ;若集合S中只存在一個(gè)連續(xù)區(qū)間則將該區(qū)間分成A和B兩個(gè)區(qū)間:當(dāng)k為偶數(shù)時(shí),dl=d2=k/2 ;當(dāng)k為奇數(shù)時(shí),dl=(k+l)/2, d2=(k-l)/2 ;若d2〈d,則T=T+1,返回步驟21),重新尋找區(qū)間A和區(qū)間B ;若d2≥d,則將此時(shí)的區(qū)間A和區(qū)間B作為尋找出的魯棒區(qū)間A和魯棒區(qū)間B; 3)將魯棒區(qū)間A、B內(nèi)的直方圖不為O的灰度值分別改為yl、y2,所述的yl、y2分別為距離區(qū)間A、B最近的灰度值;設(shè)區(qū)間A內(nèi)1/2位置對(duì)應(yīng)的灰度值為Si,區(qū)間B內(nèi)1/2位置對(duì)應(yīng)的灰度值為s2 ; 4)將經(jīng)過(guò)步驟3)變更后的新的輸入圖像內(nèi)的像素進(jìn)行掃描,搜索灰度值為P的點(diǎn)并且將灰度值為P的點(diǎn)定義為信息嵌入點(diǎn);若待嵌入信息為1,則將該信息嵌入點(diǎn)的值置為Si,若待嵌入信息為O,則將該信息嵌入點(diǎn)的值為S2 ;直至所有信息嵌入點(diǎn)都嵌入信息; 5)信息接收端接收含有嵌入信息的輸入圖像,并生成統(tǒng)計(jì)直方圖; 6)設(shè)含有嵌入信息的輸入圖像中嵌入信息為I的數(shù)量為NI,R=O,N1、R為均正整數(shù);計(jì)算獲得灰度值區(qū)間[sl_R,sl+R]之間像素的個(gè)數(shù)m,若m〈Nl,則R=R+1,重復(fù)計(jì)算灰度值區(qū)間[sl-R,sl+R]之間像素的個(gè)數(shù),直到m≥NI ;此時(shí)的灰度值區(qū)間[sl_R,sl+R]為嵌入信息為I的直方圖區(qū)間;設(shè)含有嵌入信息的輸入圖像中嵌入信息為O的數(shù)量為N0,L=0,N0、L均為正整數(shù);計(jì)算獲得灰度值區(qū)間[sO-L,sO+L]之間像素的個(gè)數(shù)n,若η〈Ν0,則L=L+1,重復(fù)計(jì)算灰度值區(qū)間[sO-L,sO+L]之間像素的個(gè)數(shù)n,直到η≥NO,此時(shí)的灰度值區(qū)間[sO-L, sO+L]為嵌入彳目息為O的直方圖區(qū)間; 7)掃描含有嵌入信息的輸入圖像像素,若當(dāng)前灰度值Xe [sl-R,sl+R],則提取嵌入信息I,并恢復(fù)原像素X=P ;若當(dāng)如灰度值X e [sO-L, sO+L],則提取嵌入信息O,并恢復(fù)原像素X=P ;其他情況X保持不變;最終恢復(fù)原輸入圖像并提取嵌入信息。
【文檔編號(hào)】H04N19/467GK103795889SQ201410022840
【公開(kāi)日】2014年5月14日 申請(qǐng)日期:2014年1月17日 優(yōu)先權(quán)日:2014年1月17日
【發(fā)明者】周詮, 方海, 張怡, 呼延烺, 李靜玲, 崔濤 申請(qǐng)人:西安空間無(wú)線(xiàn)電技術(shù)研究所