本發(fā)明涉及地圖數(shù)字水印領(lǐng)域,尤其涉及一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法。
背景技術(shù):
基于lsb的數(shù)字水印算法是一種空間域算法,它將水印信息直接嵌入到載體數(shù)據(jù)像素值的最低有效位中,在嵌入版權(quán)信息的同時(shí)保證了嵌入信息的隱藏及對(duì)原始載體信息影響的最小化。該方法是一種盲水印算法,其嵌入和提取水印過程都比較簡(jiǎn)單。但是lsb算法有很明顯的缺陷,它的魯棒性比較差,很難對(duì)抗濾波、噪聲等常見惡意攻擊。目前,lsb數(shù)字水印方法及其改進(jìn)已應(yīng)用于圖像及矢量地理空間數(shù)據(jù)的版權(quán)保護(hù),但其在柵格地圖版權(quán)保護(hù)中的應(yīng)用還很鮮見,因此研究一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法具有一定的現(xiàn)實(shí)意義和實(shí)際應(yīng)用價(jià)值。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的實(shí)施例提供了一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法。
本發(fā)明包括以下步驟:
(a)提取原始柵格地圖的邊緣數(shù)據(jù):設(shè)a為所述原始柵格地圖,通過兩sobel卷積因子分別與a做卷積運(yùn)算得出橫向邊緣圖像gx、縱向邊緣圖像gy,再通過公式計(jì)算出a中每一像素的梯度大小,形成梯度矩陣g,將所述梯度矩陣g轉(zhuǎn)化為灰度圖像,用最大類間方差法計(jì)算圖片的灰度閾值,并根據(jù)計(jì)算出來(lái)的閾值分割梯度圖像得到二值圖像,所述二值圖像即為最終的邊緣圖像;
(b)根據(jù)水印信息的比特?cái)?shù)將所述邊緣圖像分塊:根據(jù)版權(quán)信息載體圖像的尺寸和位深度計(jì)算所述水印信息的大小,設(shè)水印圖像的大小為m×n,位深度為kbits,則所述水印信息的大小b=m×n×kbits,由于所述邊緣圖像是二值圖,像素值為1的點(diǎn)表征了所述原始柵格地圖的輪廓,即為可選的水印嵌入點(diǎn),擬在每個(gè)嵌入點(diǎn)嵌入1位所述水印信息,設(shè)所述邊緣圖像中像素值為1的點(diǎn)的總數(shù)為s,原始柵格地圖初步的分塊數(shù)為c,計(jì)算每塊中像素值為1的點(diǎn)的總數(shù)s,若s<b,則該塊不足以嵌入一個(gè)水印信息,將該塊與下一塊合并,再次計(jì)算該新塊中像素值為1的點(diǎn)的總數(shù)s,直到s>b時(shí),停止合并,記錄所述每個(gè)塊的起始位置;
(c)對(duì)每個(gè)所述邊緣圖像分塊,采用bfa算法提取出較優(yōu)水印嵌入點(diǎn)集:設(shè)初始細(xì)菌總數(shù)為n,并將它們隨機(jī)分布到所述邊緣圖像分塊中,初始位置記為p1,p2…pn;設(shè)連通閾值為t,即連續(xù)t個(gè)像素的值為1,也是所述細(xì)菌在某一方向上能連續(xù)前行的步數(shù),這類邊緣表征線狀或面狀地物;設(shè)所述細(xì)菌趨化步數(shù)閾值為c,即細(xì)菌在八方向上能前進(jìn)的總步數(shù),在柵格地圖上,這類邊緣表征獨(dú)立地物;
(d)基于lsb算法嵌入水?。簭乃鲈紪鸥竦貓D分塊情況和所述邊緣圖像中提取到的水印嵌入點(diǎn)集,找出它們?cè)谒鲈紪鸥竦貓D的相應(yīng)像素,將所述水印信息嵌入到所述原始柵格地圖的最低有效位。
進(jìn)一步地,所述兩sobel卷積因子分別為
進(jìn)一步地,所述步驟(b)中,所述原始柵格地圖初步的分塊數(shù)。
進(jìn)一步地,所述步驟(c)的具體步驟為:
(1)若提取到的所述水印嵌入點(diǎn)數(shù)小于b,則轉(zhuǎn)到步驟(2),否則結(jié)束;
(2)若邊緣圖中值為1的像素都被所述細(xì)菌搜索過,設(shè)置c=c-1,t=t-1;;
(3)對(duì)每一個(gè)所述細(xì)菌,沿自己周圍的八方向進(jìn)行搜索,搜索次序?yàn)樯稀⑾?、左、右、左上、右上、左下、右下;若所述?xì)菌在八方向上的總前進(jìn)步數(shù)小于c,將該所述細(xì)菌的位置及其能前進(jìn)到的位置點(diǎn)加入所述水印嵌入點(diǎn)集中并剔除重復(fù)點(diǎn),同時(shí)將該所述細(xì)菌驅(qū)散到該所述邊緣圖像分塊的其他位置;若所述細(xì)菌在m(1≤m≤8)個(gè)方向上的所述趨化步數(shù)均達(dá)到t,則將該點(diǎn)選為水印嵌入點(diǎn)并剔除重復(fù)點(diǎn),同時(shí)產(chǎn)生m個(gè)新細(xì)菌替換原細(xì)菌,并沿這m個(gè)方向分別移動(dòng)一步作為所述各新細(xì)菌的初始位置,轉(zhuǎn)到步驟(1)。
進(jìn)一步地,在所述步驟(d)中,由于所述原始柵格地圖一般為真彩色圖像,所述真彩色圖像中每個(gè)像素包括r、g、b三個(gè)顏色分量,為不引起顏色值的過度擾動(dòng),選擇將1位所述水印信息嵌入所述每個(gè)像素b分量的最低位。
本發(fā)明的實(shí)施例提供的技術(shù)方案帶來(lái)的有益效果是:極大地提高了原有l(wèi)sb數(shù)字水印算法的魯棒性,能有效地抵抗噪聲攻擊、濾波攻擊及幾何攻擊,且將lsb數(shù)字水印方法引入到柵格地圖的版權(quán)保護(hù)領(lǐng)域,有助于提高柵格地圖的版權(quán)安全性。
附圖說明
圖1是本發(fā)明一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法的流程圖。
圖2是本發(fā)明一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法實(shí)施例的原始柵格地圖。
圖3是本發(fā)明一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法實(shí)施例的邊緣圖像。
圖4是本發(fā)明一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法實(shí)施例的分塊邊緣圖像。
圖5是本發(fā)明一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法實(shí)施例用bfa算法提取到的分塊圖像中水印嵌入點(diǎn)示意圖。
圖6是本發(fā)明一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法實(shí)施例嵌入水印后的柵格地圖。
圖7是本發(fā)明一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法實(shí)施例未受攻擊時(shí)提取到的水印圖像。
圖8是本發(fā)明一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法實(shí)施例噪聲攻擊后的含水印柵格地圖。
圖9是本發(fā)明一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法實(shí)施例噪聲攻擊后地圖提取到的水印圖像。
圖10是本發(fā)明一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法實(shí)施例濾波攻擊后的含水印柵格地圖。
圖11是本發(fā)明一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法實(shí)施例濾波攻擊后地圖提取到的水印。
圖12是本發(fā)明一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法實(shí)施例旋轉(zhuǎn)攻擊后的含水印圖像。
圖13是本發(fā)明一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法實(shí)施例旋轉(zhuǎn)攻擊后提取的水印。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地描述。
請(qǐng)參考圖1,本發(fā)明的實(shí)施例提供了一種基于bfa與lsb的柵格地圖版權(quán)保護(hù)方法的流程圖,所述方法包括以下步驟:
(1)提取柵格地圖的邊緣數(shù)據(jù);
設(shè)a為原始柵格地圖,gx、gy分別代表橫向、縱向邊緣的圖像,則可通過兩sobel卷積因子分別與原始柵格地圖做卷積運(yùn)算得出gx、gy的值:
計(jì)算柵格地圖每一像素的梯度大小,公式如下:
將梯度矩陣g轉(zhuǎn)化為灰度圖像,用最大類間方差法計(jì)算圖片的灰度閾值,并根據(jù)計(jì)算出來(lái)的閾值分割梯度圖像得到二值圖像,該圖像即為最終的邊緣圖像。
(2)根據(jù)水印信息的比特?cái)?shù)將邊緣圖分塊;
根據(jù)版權(quán)信息載體圖像的尺寸和位深度計(jì)算水印信息的大小,設(shè)水印圖像的大小為m×n,位深度為kbits,則水印信息的大小b=m×n×kbits。
由于邊緣圖像是二值圖,像素值為1的點(diǎn)表征了地圖的輪廓,因此這些點(diǎn)即為可選的水印嵌入點(diǎn),擬在每個(gè)嵌入點(diǎn)嵌入1位水印信息。設(shè)邊緣圖中像素值為1的點(diǎn)的總數(shù)為s,則柵格地圖初步的分塊數(shù)
(3)對(duì)每個(gè)邊緣圖像分塊,采用bfa算法提取出較優(yōu)的水印嵌入點(diǎn)集;
設(shè)初始細(xì)菌總數(shù)為n,并將它們隨機(jī)分布到邊緣圖分塊中,初始位置記為p1,p2…pn;設(shè)連通閾值為t,即連續(xù)t個(gè)像素的值為1,也是細(xì)菌在某一方向上能連續(xù)前行的步數(shù),這類邊緣通常表征線狀或面狀地物;設(shè)細(xì)菌趨化步數(shù)閾值為c,即細(xì)菌在八方向上能前進(jìn)的總步數(shù),在柵格地圖上,這類邊緣通常表征獨(dú)立地物。具體過程如下:
(1)若提取到的所述水印嵌入點(diǎn)數(shù)小于b,則轉(zhuǎn)到步驟(2),否則結(jié)束;
(2)若邊緣圖中值為1的像素都被所述細(xì)菌搜索過,設(shè)置c=c-1,t=t-1;
(3)對(duì)每一個(gè)所述細(xì)菌,沿自己周圍的八方向進(jìn)行搜索,搜索次序?yàn)樯?、下、左、右、左上、右上、左下、右下;若所述?xì)菌在八方向上的總前進(jìn)步數(shù)小于c,將該所述細(xì)菌的位置及其能前進(jìn)到的位置點(diǎn)加入所述水印嵌入點(diǎn)集中并剔除重復(fù)點(diǎn),同時(shí)將該所述細(xì)菌驅(qū)散到該所述邊緣圖像分塊的其他位置;若所述細(xì)菌在m(1≤m≤8)個(gè)方向上的所述趨化步數(shù)均達(dá)到t,則將該點(diǎn)選為水印嵌入點(diǎn)并剔除重復(fù)點(diǎn),同時(shí)產(chǎn)生m個(gè)新細(xì)菌替換原細(xì)菌,并沿這m個(gè)方向分別移動(dòng)一步作為所述各新細(xì)菌的初始位置,轉(zhuǎn)到步驟(1)。
(4)嵌入水印。
基于lsb的水印算法其基本原理就是將水印信息嵌入到載體的最低有效位。根據(jù)(2)中記錄的分塊情況和從邊緣圖中提取到的水印嵌入點(diǎn)集,找出它們?cè)谠紪鸥竦貓D的相應(yīng)像素。由于柵格地圖一般為真彩色圖像,每個(gè)像素包括r、g、b三個(gè)顏色分量,為不引起顏色值的過度擾動(dòng),選擇將1位水印信息嵌入每個(gè)像素b分量的最低位。
實(shí)施例一:
為了更清晰的說明本發(fā)明的思想,以圖2為原始柵格地圖,圖7為水印圖像并以這兩幅圖像數(shù)據(jù)為實(shí)施例進(jìn)行進(jìn)一步的說明。
(1)利用sobel算子提取原始柵格地圖的邊緣圖,結(jié)果請(qǐng)參考圖3;
(2)對(duì)邊緣圖進(jìn)行分塊,分塊結(jié)果請(qǐng)參考圖4;
(3)利用bfa算法對(duì)每一分塊提取較優(yōu)的水印嵌入點(diǎn),在此過程的某一時(shí)刻細(xì)菌的分布情況請(qǐng)參考圖5;
(4)根據(jù)分塊情況和水印嵌入點(diǎn)集,基于lsb算法將水印信息嵌入到柵格地圖相應(yīng)像素點(diǎn)b顏色分量的最低位,結(jié)果請(qǐng)參考圖6。
(5)本發(fā)明的可用性驗(yàn)證請(qǐng)參考圖7-圖13。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。