專利名稱:適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加、提取和去除方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像數(shù)據(jù)的數(shù)字水印技術(shù)。
背景技術(shù):
伴隨著數(shù)字技術(shù)和互聯(lián)網(wǎng)絡(luò)技術(shù)應(yīng)用的進(jìn)一步深入,各類數(shù)字媒體通過 互聯(lián)網(wǎng)絡(luò)發(fā)布并傳播,由網(wǎng)絡(luò)知識(shí)產(chǎn)權(quán)侵權(quán)問題而產(chǎn)生的法律糾紛頻繁發(fā) 生,多媒體數(shù)字作品的版權(quán)保護(hù)與信息完整性保證逐漸成為迫切需要解決的 一個(gè)重要問題。
解決上述問題的一個(gè)先決條件是多媒體數(shù)字作品的認(rèn)證問題。傳統(tǒng)上, 一般采用密碼技術(shù)保護(hù)數(shù)字作品。密碼技術(shù)雖然能較好地保護(hù)傳輸中的內(nèi) 容,卻無法解決當(dāng)信息被接收并進(jìn)行解密后的保護(hù)問題。數(shù)字水印的基本思 想是在數(shù)字圖像、音頻或視頻中嵌入信息,以便保護(hù)數(shù)字產(chǎn)品的版權(quán)、證明 產(chǎn)品的真實(shí)可靠性。
近年來,數(shù)字水印技術(shù)作為多媒體作品的版權(quán)保護(hù)和內(nèi)容認(rèn)證的有力工 具一直受到國(guó)內(nèi)外學(xué)者的廣泛關(guān)注。
不可見水印利用了人類視覺系統(tǒng)的特點(diǎn),使得隱藏在數(shù)據(jù)中的水印無法
通過肉眼分辨出來。 一個(gè)不可見數(shù)字水印系統(tǒng)通常包括三部分水印生成、 水印嵌入和水印檢測(cè),是目前數(shù)字媒體版權(quán)保護(hù)的重要技術(shù)保障,已成為信 息安全領(lǐng)域的 一個(gè)研究熱點(diǎn)。
根據(jù)所基于域的不同,不可見水印算法可分為時(shí)/空域算法,變換域算 法和壓縮域算法三大類。時(shí)空域算法將水印信息直接嵌入到音頻時(shí)域采樣、 圖像空間像素和視頻數(shù)據(jù)等原始載體數(shù)據(jù)中,即在媒體信號(hào)的時(shí)間域或空間 域上實(shí)現(xiàn)水印嵌入。變換域算法將水印信息嵌入到音頻、圖像、視頻等原始載體的變換域系數(shù)中。壓縮域算法廣義上指充分考慮JPEG、 MPEG等技術(shù) 的結(jié)構(gòu)和特性,將水印嵌入到壓縮過程的各種變量值域中,以提高對(duì)相應(yīng)壓 縮技術(shù)或壓縮標(biāo)準(zhǔn)攻擊的魯棒性為目標(biāo)的嵌入算法。狹義上就是指水印嵌入 到JPEG位流、MPEG位流和VQ索引流中。
數(shù)字圖像盲水印專利技術(shù)相對(duì)少,僅檢索到 03116158.8、 200710189864.2、 200710179302. X、 200710039990. X四種專利4支術(shù)。如公開號(hào) 為CN101038661A的中國(guó)發(fā)明專利申請(qǐng)公布說明書/>開的基于回歸支持向量 機(jī)的盲水印嵌入和抽取方法,基于回歸將水印信息嵌入到藍(lán)色分量中,對(duì)彩色 圖像色彩有一定影響,通過比較預(yù)測(cè)值和實(shí)際值的關(guān)系實(shí)現(xiàn)水印的提取,是否 嵌入水印主要通過視覺比較來確定,不能提前對(duì)圖像是否嵌入水印進(jìn)行判斷, 缺乏相應(yīng)的水印信息去除方法。
發(fā)明內(nèi)容
有鑒于此,為了解決上述問題,本發(fā)明的目的是提出了一種數(shù)字圖像盲 水印添加方法,對(duì)原始圖像色彩影響小,易于在互聯(lián)網(wǎng)上實(shí)現(xiàn),嵌入的水印 具有較強(qiáng)的抗攻擊能力,添加、提取及去除時(shí)能提前對(duì)圖像是否嵌入水印進(jìn) 行判斷,同時(shí)公布對(duì)應(yīng)的數(shù)字水印去除方法。
本發(fā)明的目的之一是這樣實(shí)現(xiàn)的適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加 方法,包括如下步驟
S1:獲取水印圖像和待添加水印的原始圖像的RGB圖像;
S2:根據(jù)原始圖像大小將水印圖像規(guī)范化為合適大小并轉(zhuǎn)換為二值化圖像; S3:對(duì)二值化后的水印圖像進(jìn)行Arnold置亂; S4:將原始圖像由RGB圖像轉(zhuǎn)換到Y(jié)UV空間;
S5:檢測(cè)轉(zhuǎn)換到Y(jié)UV空間的原始圖像中是否存在水印,若存在水印,則 退出;若水印不存在,提取轉(zhuǎn)換到Y(jié)UV空間的原始圖像的Y分量數(shù)據(jù),將Y分量數(shù)據(jù)分成多個(gè)互不重疊的子塊;
S6:檢測(cè)添加是否完成,若未添加完成,對(duì)子塊進(jìn)行DCT變換,對(duì)該DCT 變換后的子塊選取合適的2個(gè)中頻系數(shù)Dl和D2作為嵌入水印的位置,修改 Dl和D2的值,規(guī)則如下
當(dāng)『"fer(w,")=0時(shí),D1=N、 D2=-N;
當(dāng)『&er(w,")=l時(shí),Dl=-N、 D2=N;
式中『o妙(附,w)表示水印圖像(m, n)處的二值數(shù)據(jù);
重復(fù)步驟S6,檢測(cè)添加是否完成,若未添加完成,則對(duì)下一個(gè)子塊進(jìn)行處 理,直到水印添加完成;
S7:對(duì)嵌入水印后的每個(gè)子塊進(jìn)行逆DCT變換,得到圖像的Y分量數(shù)據(jù), 結(jié)合步驟S4所得圖像的U分量和V分量,轉(zhuǎn)換到RGB空間,得到嵌入了不可 見水印的彩色圖像。
進(jìn)一步,步驟S1是通過互聯(lián)網(wǎng),由.NET Framework框架GDI+技術(shù)獲取待 添加水印的原始圖^f象、水印圖^象。
進(jìn)一步,步驟S1是使用GDI+技術(shù)分別對(duì)通過互聯(lián)網(wǎng)獲取的待添加水印的 原始圖像、水印圖像進(jìn)行如下處理,獲得原始圖像和水印圖像的RGB圖像
Sll:新建一個(gè)位圖對(duì)象,用原始圖像或水印圖像初始化該位圖對(duì)象,獲得 原始圖像或水印圖像的屬性信息;
S12:新建一個(gè)顏色對(duì)象,用原始圖像或水印圖像初始化該顏色對(duì)象,獲得 原始圖像或水印圖像各像素點(diǎn)的RGB分量;
S13:利用各像素點(diǎn)的RGB分量更新位圖對(duì)象中的各像素點(diǎn),獲得原始圖 像或水印圖像的RGB圖像。
進(jìn)一步,步驟S5是通過下面的方法檢測(cè)水印是否存在
S51:將Y分量數(shù)據(jù)分為互不重疊的多個(gè)子塊,并對(duì)每個(gè)子塊分別進(jìn)行DCT 變換;S52:讀取對(duì)應(yīng)位置2個(gè)中頻系數(shù)D1和D2的值,將多組中頻系數(shù)值與閾 值T (0.KT〈N)比較,判斷該圖像是否被嵌入了水??;若有大于設(shè)定門檻組的 中頻系數(shù)值存在D1〉T、 D2〈-T或DK-T、 D2〉T,則說明嵌入了水??;反之, 未嵌入水??;
進(jìn)一步,步驟S6是通過下面的方法檢測(cè)水印添加是否完成的 水印添加控制計(jì)數(shù)器初始值為水印圖像像素個(gè)數(shù),每修改一次Dl和D2
的值將計(jì)數(shù)器減l,讀取水印添加控制計(jì)數(shù)器的值,若該值大于0,水印添加未
完成;
進(jìn)一步,步驟S7之后還包括如下步驟S8,通過.NET Framework框架GDI+ 技術(shù)將嵌入水印后的圖像顯示在網(wǎng)頁中。
本發(fā)明的目的之二是提供一種適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印提取方 法,用于提取使用前述適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加方法添加盲水印 后的圖像中的水印,包括如下步驟
Al:獲取待提取水印的圖像;
A2:將獲取待提取水印的圖像轉(zhuǎn)換到Y(jié)UV空間;
A3:提取待提取水印的圖像的Y分量數(shù)據(jù),將Y分量數(shù)據(jù)分為互不重疊 的多個(gè)子塊;
A4:檢測(cè)水印提取是否完成,若未完成,則對(duì)子塊進(jìn)行DCT變換,提取 子塊中水印圖像二值數(shù)據(jù),方法如下
當(dāng)D1〉T、 D2<-T時(shí),『"敏(附,")=0;
當(dāng)DK—T、 D2〉T時(shí),『"^(附,")=1;
式中『afeK附,")表示水印圖像(m, n)處的二值數(shù)據(jù);
重復(fù)步驟A4,檢測(cè)水印提取是否完成,若未完成,則對(duì)下一子塊進(jìn)行提取, 直到水印提取完成;
A5:將提取的水印圖像進(jìn)行Arnold反置亂;
進(jìn)一步,步驟A1中,是通過互聯(lián)網(wǎng),由.NET Framework框架GDI+技術(shù)獲取待提取水印的圖像;步驟A4中,檢測(cè)水印提取是否完成方法同于^r測(cè)水 印添加是否完成方法;步驟A5之后,還包括步驟A6:通過互聯(lián)網(wǎng),由.NET Framework框架GDI+技術(shù)將水印圖像顯示在網(wǎng)頁中。
本發(fā)明的目的之三是提供一種適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印去除方 法,用于去除使用前述的適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加方法添加盲水 印后的圖像中的水印,包括如下步驟
Bl:獲取待去除水印的圖像數(shù)據(jù);
B2:將獲取待去除水印的圖像轉(zhuǎn)換到Y(jié)UV空間
B3:提取Y分量數(shù)據(jù),對(duì)Y分量數(shù)據(jù)分為多個(gè)互不重疊的子塊;
B4:檢測(cè)水印去除是否完成,若未完成,對(duì)子塊進(jìn)行DCT變換,修改子 塊中含有水印圖像信息的Dl和D2的值,實(shí)現(xiàn)水印圖4象信息的去除,方法如下
當(dāng)D1>T、 D2〈-T時(shí),設(shè)置01=02=0.1;
當(dāng)DK-T、 D2〉T時(shí),設(shè)置01=02=0.1;
重復(fù)步驟B4,檢測(cè)水印去除是否完成,若未完成,則對(duì)下一個(gè)子塊進(jìn)行水 印圖傳Z言息的去除,直到水印去除完成;
B5:對(duì)去除水印后的每個(gè)子塊進(jìn)行逆DCT變換,得到圖像的Y分量數(shù)據(jù), 結(jié)合步驟B3所得圖像的U分量和V分量,轉(zhuǎn)換到RGB空間,即得到去除盲 水印的圖像。
進(jìn)一步,步驟B1中,是通過互聯(lián)網(wǎng),由.NET Framework框架GDI+技術(shù)獲 取待去除水印的圖像;步驟B4中,檢測(cè)水印去除是否完成方法同于檢測(cè)水印 添加是否完成方法;步驟B5之后,還包括步驟B6:通過互聯(lián)網(wǎng),由.NET Framework框架GDI+4支術(shù)將去除水印后的圖^象顯示在網(wǎng)頁中。
本發(fā)明提出的適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加、提取和去除方法, 算法簡(jiǎn)單可靠,易于在互聯(lián)網(wǎng)上實(shí)現(xiàn),可方便通過互聯(lián)網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)字圖像不可 見水印的添加、提取,也可根據(jù)客戶要求去除添加的水??;水印提取和去除均 不需要原始圖像的參與;嵌入的不可見水印具有較強(qiáng)的抗JPEG壓縮攻擊的能力,對(duì)銳化攻擊和剪切攻擊也具有很強(qiáng)的魯棒性,用于隱式標(biāo)識(shí)數(shù)字圖像版權(quán)。 本發(fā)明的其他優(yōu)點(diǎn)、目標(biāo),和特征在某種程度上將在隨后的說明書中進(jìn)行 闡述,并且在某種程度上,基于對(duì)下文的考察研究對(duì)本領(lǐng)域技術(shù)人員而言將是 顯而易見的,或者可以從本發(fā)明的實(shí)踐中得到教導(dǎo)。本發(fā)明的目標(biāo)和其他優(yōu)點(diǎn) 可以通過下面的說明書,權(quán)利要求書,以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和 獲得。
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本
發(fā)明作進(jìn)一步的詳細(xì)描述
圖1示出了適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加方法的流程示意圖2示出了適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印提取方法的流程示意圖3示出了適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印去除方法的流程示意圖4示出了本發(fā)明在互聯(lián)網(wǎng)上實(shí)現(xiàn)的流程示意圖5示出了試驗(yàn)用原始圖像;
圖6示出了試驗(yàn)用水印圖像;
圖7示出了嵌入水印圖像的原始圖像;
圖8示出了從圖7所示圖像中提取的水印圖像。
具體實(shí)施例方式
以下將對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)的描述。
參見圖1,本實(shí)施例的適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加方法,包括 如下步驟
Sl:通過互聯(lián)網(wǎng),由.NET Framework框架GDI+技術(shù)獲取待添加水印的原 始圖像、水印圖像,并獲得原始圖像和水印圖像的RGB圖像;.NetFramework 框架中,提供了一套相應(yīng)的功能強(qiáng)大的GDI+類庫,提供了圖形圖像操作的應(yīng)用程序編程接口(API),能方便地通過互聯(lián)網(wǎng)進(jìn)行圖形圖像操作,具體包括如下步
驟
Sll:位圖(Bitmap)對(duì)象,用原始圖像或水印圖像初始化該Bitmap對(duì)象 Bitmap box = new Bitmap(ImageUrl),這樣,新建的Bitmap對(duì)象box里面就包含 了該圖像的各種信息,可以使用如box.Width,box.Height獲取圖 <象的寬和高等屬性。
S12:由于圖片小于128*128時(shí)不適合嵌入水印,因此可增加檢測(cè)原始圖像 大小是否小于128*128的步驟,小于時(shí)給出不適合嵌入水印提示并退出;
S13:新建一個(gè)顏色(Color)對(duì)象,利用橫縱坐標(biāo)獲取原始圖像或水印圖像中 的某個(gè)像素信息來初始化該Color對(duì)象Color color = box.GetPixel(xPos, yPos), 這樣新建的Color對(duì)象color中就包含該像素點(diǎn)的各種信息,可以使用color.R, color.G, color.B獲取該像素的RGB分量,最終獲得原始圖像或水印圖像各像 素點(diǎn)的RGB分量;
S14:利用各像素點(diǎn)的RGB分量更新位圖對(duì)象中的各像素點(diǎn),獲得原始圖 像或水印圖像的RGB圖像;
S2:根據(jù)原始圖像大小將水印圖像規(guī)范化為32*32或16*16的像素陣列并 轉(zhuǎn)換為二值化圖像;
S3:對(duì)二值化后的水印圖像進(jìn)行10次Arnold置亂;
S4:將原始圖像由RGB圖像轉(zhuǎn)換到Y(jié)UV空間;RGB色彩模型就是模型中 的各種顏色都是由紅、綠、藍(lán)三基色以不同的比例相加混合而產(chǎn)生的。
其中C為任意彩色光,"/,義為三基色R,QB的權(quán)值。R,QB的亮度值限 定在0-255之間。每個(gè)像素的顏色都用三維空間的一個(gè)點(diǎn)來表示。
YUV彩色模型中Y代表亮度,U、 V代表色差,U和V是構(gòu)成彩色的兩個(gè) 分量。YUV色彩空間與RGB色彩空間的轉(zhuǎn)換關(guān)系如下<formula>formula see original document page 13</formula>
S5:檢測(cè)轉(zhuǎn)換到Y(jié)UV空間的原始圖像中是否存在水印,若存在水印,退 出;若水印不存在,提取轉(zhuǎn)換到Y(jié)UV空間的原始圖像的Y分量數(shù)據(jù),將Y分 量數(shù)據(jù)分成互不重疊的8X8的子塊;
通過下面的方法檢測(cè)水印是否存在
將Y分量數(shù)據(jù)分為互不重疊的8X8的子塊,并對(duì)每個(gè)子塊分別進(jìn)行DCT 變換。本實(shí)施例釆用的DCT變換定義如下
7V_1 W-l
相應(yīng)的逆變換定義為
iV-l AM
讀取對(duì)應(yīng)位置2個(gè)中頻系數(shù)Dl和D2的值,將多組中頻系數(shù)值與閾值T (0.1<T<N,參考值可設(shè)置為2~4之間)比較,判斷該圖像是否被嵌入了水?。?若有大于設(shè)定門檻組(參考值可設(shè)置為50-100之間)的中頻系數(shù)值存在D^T、 D2《T或DK-T、 D2〉T,則說明嵌入了水??;反之,未嵌入水?。?br>
S6:對(duì)子塊進(jìn)行DCT變換,對(duì)該DCT變換后的子塊選取合適的2個(gè)中頻 系數(shù)D1和D2作為嵌入水印的位置,參考系數(shù)如DCr—WocA;(5,2) 、 DCr—Wod(4,3), 修改Dl和D2的值,規(guī)則如下
當(dāng)『afer(w,w)=0時(shí),D1=N、 D2=-N;
當(dāng)『0/^(附,")=1時(shí),Dl=-N、 D2=N;
式中『a欣(m,")表示7JC印圖像(m , n)處的二值數(shù)據(jù);
檢測(cè)添加是否完成,若未添加完成,則重復(fù)本步驟中的上述過程對(duì)下一個(gè)
13
(2/ + l)w;r
~~^~~
cos
(2A: + l)v;r
(2/ + l)w;r
~~"~
cos
(2A: + l)v;r子塊進(jìn)行處理,直到水印添加完成;
上面的肌能K附,")表示編號(hào)為(m, n)處的水印圖像二值數(shù)據(jù),可以根據(jù)實(shí) 際情況來設(shè)置N的值,N值越大,則水印圖像的魯棒性越好,但失真也越大, 一痛殳可設(shè)置為7~10之間。
通過下面的方法4全測(cè)水印添加是否完成的
初始化一個(gè)水印添加控制計(jì)數(shù)器,其初始值為水印圖像像素個(gè)數(shù),每修改 一次Dl和D2的值將計(jì)數(shù)器減1,讀取水印添加控制計(jì)數(shù)器的值,若該值大于 0,水印添加未完成;
S7:對(duì)嵌入水印后的每個(gè)子塊進(jìn)行逆DCT(IDCT)變換和分塊重組,得到 圖像的Y分量數(shù)據(jù),結(jié)合步驟S4所得圖像的U分量和V分量,轉(zhuǎn)換到RGB 空間,即可得到嵌入不可見水印的彩色圖像;
S8:通過.NET Framework框架GDI+技術(shù)將嵌入水印后的圖像顯示在網(wǎng)頁中。
參見圖2,本實(shí)施例的適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印提取方法,用于 提取使用前述適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加方法添加盲水印后的圖像 中的水印,包括如下步驟
Al:是通過互聯(lián)網(wǎng),由.NET Framework框架GDI+技術(shù)獲取待提取水印的 圖像的RGB圖像,具體方法如步驟S1,在此不再贅述;
A2:將獲取待提取水印的圖像由RGB圖像轉(zhuǎn)換到Y(jié)UV空間;
A3:提取待提取水印的圖像的Y分量數(shù)據(jù),將Y分量凝:據(jù)分為互不重疊
的多個(gè)子塊;檢測(cè)水印是否存在,若水印不存在,則退出;若存在水印,則執(zhí)
行步驟A4;
A4:檢測(cè)水印提取是否完成,若未完成,則對(duì)子塊進(jìn)行DCT變換,提取 子塊中水印圖像二值數(shù)據(jù),方法如下 當(dāng)D1〉T、 D2〈一T時(shí),『加"0,")=0; 當(dāng)DK-T、 D2〉T時(shí),『"^*(>,")=1; 14式中『她K附,M)表示水印圖像(m, n)處的二值數(shù)據(jù);
重復(fù)步驟A4,檢測(cè)水印提取是否完成,若未完成,則對(duì)下一子塊進(jìn)行提取, 直到水印提取完成;
通過如下方法檢測(cè)水印提取是否完成設(shè)置一水印提取控制計(jì)數(shù)器,初始 值為水印圖像像素個(gè)數(shù),每提取一次D1和D2的值后將計(jì)數(shù)器減1,讀取水印 提取控制計(jì)數(shù)器的值,若該值大于O,則水印提取未完成;
A5:將提取的水印圖像進(jìn)行10次Arnold反置亂。
A6:通過互聯(lián)網(wǎng),由.NETFramework框架GDI+技術(shù)將水印圖像顯示在網(wǎng) 頁中。
參見圖3,本實(shí)施例的適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印去除方法,用于 去除使用前述適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加方法添加盲水印后的圖像 中的水印,包括如下步驟
B1:是通過互聯(lián)網(wǎng),由.NET Framework框架GDI+技術(shù)獲取待去除水印的 圖像的RGB圖像;
B2:將獲取待去除水印的圖像的RGB圖像轉(zhuǎn)換到Y(jié)UV空間
B3:提取Y分量數(shù)據(jù),對(duì)Y分量數(shù)據(jù)分為多個(gè)互不重疊的子塊,并對(duì)每個(gè) 子塊分別進(jìn)行DCT變換;檢測(cè)水印是否存在,若水印不存在,退出;若存在水 印,^M亍步驟B4;
B4:檢測(cè)水印去除是否完成,若未完成,對(duì)子塊進(jìn)行DCT變換,修改子 塊中含有水印圖像信息的Dl和D2的值,實(shí)現(xiàn)水印圖像信息的去除,方法如下 當(dāng)D1>T、 D2〈-T時(shí),i殳置Dl-D2:0.1; 當(dāng)DK-T、 D2>T時(shí),設(shè)置D1=D2 =0.1;
重復(fù)步驟B4,檢測(cè)水印去除是否完成,若未完成,則對(duì)下一個(gè)子塊進(jìn)行水 印圖^象信息的去除,直到水印去除完成;
通過如下方法檢測(cè)水印去除是否完成設(shè)置一水印去除控制計(jì)數(shù)器,初始 值為水印圖像像素個(gè)數(shù),每修改一次D1和D2的值后將計(jì)數(shù)器減1,讀取水印去除控制計(jì)數(shù)器的值,若該值大于0,則水印去除未完成;
B5:對(duì)去除水印后的每個(gè)子塊進(jìn)行逆DCT變換,得到圖像的Y分量數(shù)據(jù), 結(jié)合步驟B3所得圖像的U分量和V分量,轉(zhuǎn)換到RGB空間,即得到去除盲 水印的圖像。
B6:通過互聯(lián)網(wǎng),由.NET Framework框架GDI+技術(shù)將去除水印后的圖像 顯示在網(wǎng)頁中。
利用上述適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加、提取和去除方法,可方 便地通過網(wǎng)頁在互聯(lián)網(wǎng)上實(shí)現(xiàn)在線的數(shù)字圖像盲水印添加、提取和去除,通過 流程示意圖如圖4所示。
實(shí)驗(yàn)所使用的原始彩色圖像如圖5所示,為320 x 320的彩色lena圖像。 水印圖像如圖6所示,為32x32有"重慶大學(xué)"字樣的二值圖像。
在如圖5所示原始圖像中嵌入如圖6所示水印圖像后的圖像如圖7所示, 從圖7所示圖像中提取的水印圖像如圖8所示。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并不用于限制本發(fā)明,顯然,本領(lǐng) 域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和 范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技 術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加方法,其特征在于,包括如下步驟S1獲取水印圖像和待添加水印的原始圖像的RGB圖像;S2根據(jù)原始圖像大小將水印圖像規(guī)范化為合適大小并轉(zhuǎn)換為二值化圖像;S3對(duì)二值化后的水印圖像進(jìn)行Arnold置亂;S4將原始圖像由RGB圖像轉(zhuǎn)換到Y(jié)UV空間;S5檢測(cè)轉(zhuǎn)換到Y(jié)UV空間的原始圖像中是否存在水印,若存在水印,則退出;若水印不存在,提取轉(zhuǎn)換到Y(jié)UV空間的原始圖像的Y分量數(shù)據(jù),將Y分量數(shù)據(jù)分成多個(gè)互不重疊的子塊;S6檢測(cè)添加是否完成,若未添加完成,則對(duì)子塊進(jìn)行DCT變換,對(duì)該DCT變換后的子塊選取合適的2個(gè)中頻系數(shù)D1和D2作為嵌入水印的位置,修改D1和D2的值,規(guī)則如下當(dāng)Water(m,n)=0時(shí),D1=N、D2=-N;當(dāng)Water(m,n)=1時(shí),D1=-N、D2=N;式中Water(m,n)表示水印圖像(m,n)處的二值數(shù)據(jù);重復(fù)步驟S6,檢測(cè)添加是否完成,若未添加完成,則對(duì)下一個(gè)子塊進(jìn)行處理,直到水印添加完成;S7對(duì)嵌入水印后的每個(gè)子塊進(jìn)行逆DCT變換,得到圖像的Y分量數(shù)據(jù),結(jié)合步驟S4所得圖像的U分量和V分量,轉(zhuǎn)換到RGB空間,得到嵌入了不可見水印的彩色圖像。
2. 如權(quán)利要求1所述的適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加方法,其特 征在于步驟S1中,是通過互聯(lián)網(wǎng),由.NETFramework框架GDI+技術(shù)獲取待 添加水印的原始圖^^、水印圖^^。
3. 如權(quán)利要求1所述的適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加方法,其特征在于步驟S1中使用GDI+技術(shù)分別對(duì)通過互聯(lián)網(wǎng)獲取的待添加水印的原始 圖像、水印圖像進(jìn)行如下處理,獲得原始圖像和水印圖像的RGB圖像Sll:新建一個(gè)位圖對(duì)象,用原始圖像或水印圖像初始化該位圖對(duì)象,獲得 原始圖像或水印圖像的屬性信息;S12:新建一個(gè)顏色對(duì)象,用原始圖像或水印圖像初始化該顏色對(duì)象,獲得 原始圖像或水印圖像各像素點(diǎn)的RGB分量;S13:利用各像素點(diǎn)的RGB分量更新位圖對(duì)象中的各像素點(diǎn),獲得原始圖 像或水印圖像的RGB圖像。
4. 如權(quán)利要求1所述的適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加方法,其特 征在于步驟S5中,是通過下面的方法^r測(cè)水印是否存在S51:將Y分量數(shù)據(jù)分為互不重疊的多個(gè)子塊,并對(duì)每個(gè)子塊分別進(jìn)行DCT 變換;S52:讀取對(duì)應(yīng)位置2個(gè)中頻系數(shù)Dl和D2的值,將多組中頻系數(shù)值與閾 值T (0.1<T<N)比較,判斷該圖像是否被嵌入了水??;若有大于設(shè)定門檻組的 中頻系數(shù)值存在D1〉T、 D2《T或DK-T、 D2〉T,則說明嵌入了水??;反之, 未嵌入水印。
5. 如權(quán)利要求l所述的適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加方法,其特 征在于步驟S6中,是通過下面的方法4僉測(cè)水印添加是否完成的設(shè)置一個(gè)水印添加控制計(jì)數(shù)器,其初始值為水印圖像像素個(gè)數(shù),每修改一 次D1和D2的值將計(jì)數(shù)器減1,讀取水印添加控制計(jì)數(shù)器的值,若該值大于O, 水印添加未完成。
6. 如權(quán)利要求1至3中任一項(xiàng)所述的適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添 加方法,其特征在于步驟S7之后還包括如下步驟S8,通過.NET Framework 框架GDI+技術(shù)將嵌入水印后的圖像顯示在網(wǎng)頁中。
7. 適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印提取方法,用于提取使用如權(quán)利要求1-4中任一項(xiàng)所述的適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加方法添加盲水印后的圖像中的水印,其特征在于包括如下步驟 Al:獲取待提取水印的圖像; A2:將獲取待提取水印的圖像轉(zhuǎn)換到Y(jié)UV空間;A3:提取待提取水印的圖像的Y分量數(shù)據(jù),將Y分量數(shù)據(jù)分為互不重疊 的多個(gè)子塊;檢測(cè)水印是否存在,若水印不存在,則退出;若存在水印,則執(zhí) 行步驟A4;A4:檢測(cè)水印提取是否完成,若未完成,則對(duì)子塊進(jìn)行DCT變換,提取 子塊中水印圖^^二值數(shù)據(jù),方法如下當(dāng)D1〉T、 D2<—T時(shí),^"eK附,")-o;當(dāng)DK-T、 D2〉T時(shí),脂—,")=1;式中")表示水印圖像(m, n)處的二值數(shù)據(jù);重復(fù)步驟A4,檢測(cè)水印提取是否完成,若未完成,則對(duì)下一子塊進(jìn)行提取, 直到水印揭:耳又完成;A5:將提取的水印圖像進(jìn)行Arnold反置亂。
8. 如權(quán)利要求7所述的適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印提取方法,其特 征在于步驟A1中,是通過互聯(lián)網(wǎng),由.NETFramework框架GDI+技術(shù)獲取待 提取水印的圖像;步驟A4中,通過如下方法檢測(cè)水印提取是否完成設(shè)置一 水印提取控制計(jì)數(shù)器,初始值為水印圖像像素個(gè)數(shù),每提取一次Dl和D2的值 后將計(jì)數(shù)器減l,讀取水印提取控制計(jì)數(shù)器的值,若該值大于O,則水印提取未 完成;步驟A5之后,還包括步驟A6:通過互聯(lián)網(wǎng),由.NET Framework框架 GDI+技術(shù)將水印圖像顯示在網(wǎng)頁中。
9.適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印去除方法,用于去除使用如權(quán)利要求 1_4中任一項(xiàng)所述的適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加方法添加盲水印后 的圖像中的水印,其特征在于包括如下步驟Bl:獲取待去除水印的圖像數(shù)據(jù);B2:將獲取待去除水印的圖像轉(zhuǎn)換到Y(jié)UV空間B3:提取Y分量數(shù)據(jù),對(duì)Y分量凄t據(jù)分為多個(gè)互不重疊的子塊;^r測(cè)水印 是否存在,若水印不存在,退出;若存在水印,執(zhí)行步驟B4;B4:檢測(cè)水印去除是否完成,若未完成,對(duì)子塊進(jìn)行DCT變換,修改子 塊中含有水印圖像信息的Dl和D2的值,實(shí)現(xiàn)水印圖像信息的去除,方法如下當(dāng)D1>T、 D2〈-T時(shí),設(shè)置D^D2-0.1;當(dāng)DK-T、 D2>T時(shí),設(shè)置D1=D2 =0.1;重復(fù)步驟B4,檢測(cè)水印去除是否完成,若未完成,則對(duì)下一個(gè)子塊進(jìn)行水 印圖像信息的去除,直到水印去除完成;B5:對(duì)去除水印后的每個(gè)子塊進(jìn)行逆DCT變換,得到圖像的Y分量數(shù)據(jù), 結(jié)合步驟B3所得圖像的U分量和V分量,轉(zhuǎn)換到RGB空間,即得到去除盲 水印的圖像。
10.如權(quán)利要求9所述的適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印去除方法,其 特征在于步驟B1中,是通過互聯(lián)網(wǎng),由.NETFramework框架GDI+4支術(shù)獲取 待去除水印的圖像;步驟B4中,通過如下方法檢測(cè)水印去除是否完成設(shè)置 一水印去除控制計(jì)數(shù)器,初始值為水印圖像像素個(gè)數(shù),每修改一次D1和D2的 值后將計(jì)數(shù)器減l,讀取水印去除控制計(jì)數(shù)器的值,若該值大于O,則水印去除 未完成;步驟B5之后,還包括步驟B6:通過互聯(lián)網(wǎng),由.NET Framework框架 GDI+技術(shù)將去除水印后的圖像顯示在網(wǎng)頁中。
全文摘要
本發(fā)明公開了一種適合于互聯(lián)網(wǎng)絡(luò)的數(shù)字圖像盲水印添加方法,包括如下步驟獲取水印圖像和待添加水印的原始圖像;將水印圖像二值化并進(jìn)行Arnold置亂后,依據(jù)人眼的視覺特性,通過修改DCT變換后的部分中頻系數(shù)實(shí)現(xiàn)水印的嵌入;本發(fā)明還公開了對(duì)應(yīng)的通過檢測(cè)DCT變換后的部分中頻系數(shù)實(shí)現(xiàn)水印提取的數(shù)字圖像盲水印提取方法和通過修改DCT變換后的部分中頻系數(shù)實(shí)現(xiàn)的水印去除方法;算法簡(jiǎn)單可靠,適于通過互聯(lián)網(wǎng)實(shí)現(xiàn),水印提取和去除均不需要原始圖像的參與;嵌入的不可見水印具有較強(qiáng)的抗JPEG壓縮攻擊的能力,對(duì)銳化攻擊和剪切攻擊也具有很強(qiáng)的魯棒性,用于隱式標(biāo)識(shí)數(shù)字圖像版權(quán)。
文檔編號(hào)G06T1/00GK101661608SQ20091010474
公開日2010年3月3日 申請(qǐng)日期2009年8月31日 優(yōu)先權(quán)日2009年8月31日
發(fā)明者胡國(guó)慶, 斌 詹, 陳新龍 申請(qǐng)人:重慶大學(xué)