




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、MATLABMATLAB是一套高性能的數(shù)值計算和可視化是一套高性能的數(shù)值計算和可視化軟件,其強大的圖形功能以及豐富的圖像軟件,其強大的圖形功能以及豐富的圖像處理工具函數(shù),使得處理工具函數(shù),使得MATLABMATLAB特別適合于圖特別適合于圖像處理學(xué)習(xí)和應(yīng)用。本章將結(jié)合數(shù)字水印像處理學(xué)習(xí)和應(yīng)用。本章將結(jié)合數(shù)字水印技術(shù),重點介紹如何利用技術(shù),重點介紹如何利用MATLABMATLAB實現(xiàn)圖像實現(xiàn)圖像處理的基本功能。處理的基本功能。 基于基于MATLABMATLAB數(shù)字水印系統(tǒng)設(shè)計數(shù)字水印系統(tǒng)設(shè)計 基于基于MATLABMATLAB數(shù)字水印系統(tǒng)設(shè)計數(shù)字水印系統(tǒng)設(shè)計 1 1 數(shù)字水印簡介數(shù)字水印簡介 數(shù)字
2、水印技術(shù)的特征及分類數(shù)字水印技術(shù)的特征及分類 數(shù)字水印系統(tǒng)的組成部分數(shù)字水印系統(tǒng)的組成部分 設(shè)計實現(xiàn)及測試設(shè)計實現(xiàn)及測試 數(shù)字水印技術(shù)是通過一定的算法將一些標(biāo)志性信數(shù)字水印技術(shù)是通過一定的算法將一些標(biāo)志性信息直接嵌入到多媒體內(nèi)容當(dāng)中,但不影響原內(nèi)容的息直接嵌入到多媒體內(nèi)容當(dāng)中,但不影響原內(nèi)容的價值和使用,并且不能被人的感知系統(tǒng)察覺或注意價值和使用,并且不能被人的感知系統(tǒng)察覺或注意到,只有通過專用的檢測器或閱讀器才能提取的一到,只有通過專用的檢測器或閱讀器才能提取的一種技術(shù)。其中的水印信息可以是作者的序列號、公種技術(shù)。其中的水印信息可以是作者的序列號、公司標(biāo)志、有特殊意義的文本等信息,可用來識別
3、文司標(biāo)志、有特殊意義的文本等信息,可用來識別文件、圖像或音樂制品的來源、版本、原作者、擁有件、圖像或音樂制品的來源、版本、原作者、擁有者、發(fā)行人、合法使用人等對數(shù)字產(chǎn)品的擁有權(quán)。者、發(fā)行人、合法使用人等對數(shù)字產(chǎn)品的擁有權(quán)。1 數(shù)字水印簡介數(shù)字水印簡介 數(shù)字水印技術(shù)大致可分為兩類數(shù)字水印技術(shù)大致可分為兩類:如空間域方法和變?nèi)缈臻g域方法和變換域方法。空間域方法不復(fù)雜,不進行變換,換域方法??臻g域方法不復(fù)雜,不進行變換,,但但并不抗攻擊。變換域水印技術(shù)比空間域方法是更并不抗攻擊。變換域水印技術(shù)比空間域方法是更抗攻擊。這是由于當(dāng)圖像逆小波變換抗攻擊。這是由于當(dāng)圖像逆小波變換,數(shù)字水印在數(shù)字水印在圖像分
4、布不規(guī)則圖像分布不規(guī)則,使得攻擊者難以閱讀或修改。在使得攻擊者難以閱讀或修改。在變換域水印技術(shù)基于離散小波變換變換域水印技術(shù)基于離散小波變換(DWT)數(shù)字水?dāng)?shù)字水印技術(shù)得到了越來越多的歡迎印技術(shù)得到了越來越多的歡迎,因為因為DWT有多項有多項優(yōu)于其他變換如漸進性和低碼率傳輸、質(zhì)量的可優(yōu)于其他變換如漸進性和低碼率傳輸、質(zhì)量的可伸縮性和感興趣區(qū)域(伸縮性和感興趣區(qū)域(ROI)編碼的需求,在圖)編碼的需求,在圖像壓縮和數(shù)字水印的應(yīng)用程序,可以被利用的更像壓縮和數(shù)字水印的應(yīng)用程序,可以被利用的更高效和更通用的圖像編碼?;陔x散小波變換高效和更通用的圖像編碼?;陔x散小波變換(DWT)更加滿足于)更加滿
5、足于JPEG2000壓縮標(biāo)準(zhǔn)的要求。壓縮標(biāo)準(zhǔn)的要求。2.1數(shù)字水印技術(shù)的特性數(shù)字水印技術(shù)的特性 數(shù)字水印有很多特征,其中最主要的特征是可證數(shù)字水印有很多特征,其中最主要的特征是可證明性、保真度、安全性、魯棒性及安全性,其主明性、保真度、安全性、魯棒性及安全性,其主要介紹如下:要介紹如下: 1)可證明性:水印應(yīng)能為受到保護的信息產(chǎn)品的可證明性:水印應(yīng)能為受到保護的信息產(chǎn)品的版權(quán)歸屬提供完全可靠的證據(jù)。版權(quán)歸屬提供完全可靠的證據(jù)。 2)保真度:即不可感知性是指視覺上或聽覺上的保真度:即不可感知性是指視覺上或聽覺上的不可感知性,即是指因嵌入水印信息后導(dǎo)致載體不可感知性,即是指因嵌入水印信息后導(dǎo)致載體
6、數(shù)據(jù)的變換而對于觀察者的視覺或聽覺系統(tǒng)來講數(shù)據(jù)的變換而對于觀察者的視覺或聽覺系統(tǒng)來講應(yīng)該是不可被察覺的。應(yīng)該是不可被察覺的。 3)魯棒性:魯棒性是指在經(jīng)歷多種無意或有意的魯棒性:魯棒性是指在經(jīng)歷多種無意或有意的信號處理過程后,數(shù)字水印仍能保持完整或仍能信號處理過程后,數(shù)字水印仍能保持完整或仍能被批準(zhǔn)鑒別。可能的信號處理過程包括信道噪聲、被批準(zhǔn)鑒別。可能的信號處理過程包括信道噪聲、濾波處理、數(shù)模或模數(shù)轉(zhuǎn)換、沖采樣、剪切、位濾波處理、數(shù)模或模數(shù)轉(zhuǎn)換、沖采樣、剪切、位移、尺度變化以及有損壓縮編碼等。移、尺度變化以及有損壓縮編碼等。 4)安全性:水印的安全性要求未授權(quán)者不能發(fā)現(xiàn)安全性:水印的安全性要求
7、未授權(quán)者不能發(fā)現(xiàn)數(shù)字產(chǎn)品中含有水印信息,或者算法安全性僅僅數(shù)字產(chǎn)品中含有水印信息,或者算法安全性僅僅依賴于密鑰而不依賴于算法的保密性。依賴于密鑰而不依賴于算法的保密性。 除以上基本特征外,在實際應(yīng)用中,數(shù)字水印還除以上基本特征外,在實際應(yīng)用中,數(shù)字水印還應(yīng)該盡量滿足以下要求:應(yīng)該盡量滿足以下要求: 1)嵌入位置的安全性:指將水印信息嵌入于目標(biāo)嵌入位置的安全性:指將水印信息嵌入于目標(biāo)數(shù)據(jù)中,而非文件頭等處,防止由于格式的變化數(shù)據(jù)中,而非文件頭等處,防止由于格式的變化而被破壞。而被破壞。 2)通用性:比較好水印算法大多都實用于多類媒通用性:比較好水印算法大多都實用于多類媒體格式與文件格式。通用性在
8、特定程度上也代表體格式與文件格式。通用性在特定程度上也代表易用性。易用性。 3)計算效率高:在軟件和硬件方面,水印算法也計算效率高:在軟件和硬件方面,水印算法也應(yīng)該能被有效的實現(xiàn)。需要特別注意的是,在分應(yīng)該能被有效的實現(xiàn)。需要特別注意的是,在分布式網(wǎng)絡(luò)上的多媒體數(shù)據(jù)監(jiān)視方面,水印檢測算布式網(wǎng)絡(luò)上的多媒體數(shù)據(jù)監(jiān)視方面,水印檢測算法的能夠快速完成。法的能夠快速完成。2.2數(shù)字水印技術(shù)的分類數(shù)字水印技術(shù)的分類 數(shù)字水印的分類方法有很多種,不同的出發(fā)點導(dǎo)數(shù)字水印的分類方法有很多種,不同的出發(fā)點導(dǎo)致了不同的分類,他們之間既有聯(lián)系又有區(qū)別,致了不同的分類,他們之間既有聯(lián)系又有區(qū)別,本文主要介紹按水印的嵌入
9、域劃分。本文主要介紹按水印的嵌入域劃分。 1按特性劃分按特性劃分 按水印的特性可以將數(shù)字水印分為魯棒數(shù)字水印按水印的特性可以將數(shù)字水印分為魯棒數(shù)字水印和脆弱數(shù)字水印兩類。魯棒數(shù)字水印主要用于在和脆弱數(shù)字水印兩類。魯棒數(shù)字水印主要用于在數(shù)字作品中標(biāo)識著作權(quán)信息,如作者、作品序號數(shù)字作品中標(biāo)識著作權(quán)信息,如作者、作品序號等,它要求嵌入的水印能夠經(jīng)受各種常用的編輯等,它要求嵌入的水印能夠經(jīng)受各種常用的編輯處理;脆弱數(shù)字水印主要用于完整性保護,與魯處理;脆弱數(shù)字水印主要用于完整性保護,與魯棒水印的要求相反,脆弱水印必須對信號的改動棒水印的要求相反,脆弱水印必須對信號的改動很敏感,人們根據(jù)脆弱水印的狀態(tài)
10、就可以判斷數(shù)很敏感,人們根據(jù)脆弱水印的狀態(tài)就可以判斷數(shù)據(jù)是否被篡改過。據(jù)是否被篡改過。 2按水印所附載的媒體劃分按水印所附載的媒體劃分 按水印所附載的媒體,我們可以將數(shù)字水印劃分按水印所附載的媒體,我們可以將數(shù)字水印劃分為圖像水印、音頻水印、視頻水印、文本水印以為圖像水印、音頻水印、視頻水印、文本水印以及用于三維網(wǎng)格模型的網(wǎng)格水印等。隨著數(shù)字技及用于三維網(wǎng)格模型的網(wǎng)格水印等。隨著數(shù)字技術(shù)的發(fā)展,會有更多種類的數(shù)字媒體出現(xiàn),同時術(shù)的發(fā)展,會有更多種類的數(shù)字媒體出現(xiàn),同時也會產(chǎn)生相應(yīng)的水印技術(shù)。也會產(chǎn)生相應(yīng)的水印技術(shù)。 3.按檢測過程劃分按檢測過程劃分 按水印的檢測過程可以將數(shù)字水印劃分為明文水按
11、水印的檢測過程可以將數(shù)字水印劃分為明文水印和盲水印。明文水印在檢測過程中需要原始數(shù)印和盲水印。明文水印在檢測過程中需要原始數(shù)據(jù),而盲水印的檢測只需要密鑰,不需要原始數(shù)據(jù),而盲水印的檢測只需要密鑰,不需要原始數(shù)據(jù)。一般來說,明文水印的魯棒性比較強,但其據(jù)。一般來說,明文水印的魯棒性比較強,但其應(yīng)用受到存儲成本的限制。目前學(xué)術(shù)界研究的數(shù)應(yīng)用受到存儲成本的限制。目前學(xué)術(shù)界研究的數(shù)字水印大多數(shù)是盲水印。字水印大多數(shù)是盲水印。 4按內(nèi)容劃分按內(nèi)容劃分 按數(shù)字水印的內(nèi)容可以將水印劃分為有意義水印按數(shù)字水印的內(nèi)容可以將水印劃分為有意義水印和無意義水印。有意義水印是指水印本身也是某和無意義水印。有意義水印是指
12、水印本身也是某個數(shù)字圖像(如商標(biāo)圖像)或數(shù)字音頻片段的編個數(shù)字圖像(如商標(biāo)圖像)或數(shù)字音頻片段的編碼;無意義水印則只對應(yīng)于一個序列號。有意義碼;無意義水印則只對應(yīng)于一個序列號。有意義水印的優(yōu)勢在于,如果由于受到攻擊或其他原因水印的優(yōu)勢在于,如果由于受到攻擊或其他原因致使解碼后的水印破損,人們?nèi)匀豢梢酝ㄟ^視覺致使解碼后的水印破損,人們?nèi)匀豢梢酝ㄟ^視覺觀察確認是否有水印。但對于無意義水印來說,觀察確認是否有水印。但對于無意義水印來說,如果解碼后的水印序列有若干碼元錯誤,則只能如果解碼后的水印序列有若干碼元錯誤,則只能通過統(tǒng)計決策來確定信號中是否含有水印。通過統(tǒng)計決策來確定信號中是否含有水印。 5按
13、用途劃分按用途劃分 不同的應(yīng)用需求造就了不同的水印技術(shù)。按水印不同的應(yīng)用需求造就了不同的水印技術(shù)。按水印的用途,我們可以將數(shù)字水印劃分為票據(jù)防偽水的用途,我們可以將數(shù)字水印劃分為票據(jù)防偽水 印、版權(quán)保護水印、篡改提示水印和隱蔽標(biāo)識水印、版權(quán)保護水印、篡改提示水印和隱蔽標(biāo)識水印。票據(jù)防偽中的水印是相當(dāng)特別的一種水印,印。票據(jù)防偽中的水印是相當(dāng)特別的一種水印,主要在票據(jù)的打印及在電子票據(jù)防偽中應(yīng)用。一主要在票據(jù)的打印及在電子票據(jù)防偽中應(yīng)用。一般說,制造假幣的人不能對票據(jù)中的圖像修改的般說,制造假幣的人不能對票據(jù)中的圖像修改的過多,因此,尺度變換等操作是不在考慮范圍內(nèi)。過多,因此,尺度變換等操作是不
14、在考慮范圍內(nèi)。另外,票據(jù)的破損、圖案模糊等地方也必須被考另外,票據(jù)的破損、圖案模糊等地方也必須被考慮,更要考慮快速檢測的要求,在票據(jù)的防偽中慮,更要考慮快速檢測的要求,在票據(jù)的防偽中水印算法不可以過于復(fù)雜。版權(quán)標(biāo)識中的水印是水印算法不可以過于復(fù)雜。版權(quán)標(biāo)識中的水印是當(dāng)前數(shù)字水印研究中使用最多的一種。數(shù)字作品當(dāng)前數(shù)字水印研究中使用最多的一種。數(shù)字作品既是一種商品也是知識產(chǎn)品,這種雙重性即強調(diào)既是一種商品也是知識產(chǎn)品,這種雙重性即強調(diào)水印隱蔽的特性又強調(diào)了水印的穩(wěn)健的特性,然水印隱蔽的特性又強調(diào)了水印的穩(wěn)健的特性,然而對數(shù)據(jù)容量的要求相對比較小。篡改提示水印而對數(shù)據(jù)容量的要求相對比較小。篡改提示水
15、印為脆弱水印的一類,其把保證宿主信號的完整性為脆弱水印的一類,其把保證宿主信號的完整性及真實性為目的。隱蔽標(biāo)識的水印主要是將被保及真實性為目的。隱蔽標(biāo)識的水印主要是將被保 密數(shù)據(jù)的標(biāo)注進行隱藏,使保密數(shù)據(jù)不被非法使密數(shù)據(jù)的標(biāo)注進行隱藏,使保密數(shù)據(jù)不被非法使用者使用。用者使用。 6按水印嵌入域劃分按水印嵌入域劃分 按水印的嵌入的位置,可以將其劃分為時按水印的嵌入的位置,可以將其劃分為時/空域水空域水印和變換域水印,其中根據(jù)變換域的不同,也分印和變換域水印,其中根據(jù)變換域的不同,也分為離散余弦變換(為離散余弦變換(discrete cosine transform,DCT)域水印、離散傅里葉變換(
16、域水印、離散傅里葉變換(discrete Fourier transform,DFT)域水印和離散小波變換)域水印和離散小波變換(discrete wavelettransform,DWT)域水印,以)域水印,以及哈德碼變換域水印、及哈德碼變換域水印、Fresnel變換域水印、變換域水印、Zernike變換域水印和奇異值分解(變換域水印和奇異值分解(singular value decomposition,SVD)域水印等。)域水印等。 時時/空域水印是將水印信息直接疊加到載體信號的空域水印是將水印信息直接疊加到載體信號的時間域或者空間域之中;然而變換域水印是將水時間域或者空間域之中;然而變換
17、域水印是將水印信息嵌入到變換域中,此時,水印提取也應(yīng)該印信息嵌入到變換域中,此時,水印提取也應(yīng)該在變換域進行。時(空)域水印算法在早期的研在變換域進行。時(空)域水印算法在早期的研究中使用的較多,一般實時性和復(fù)雜度等特點比究中使用的較多,一般實時性和復(fù)雜度等特點比較好,但其魯棒性比較差,主要用途是設(shè)計脆弱較好,但其魯棒性比較差,主要用途是設(shè)計脆弱水印與半脆弱水印;在變換域的水印算法具有良水印與半脆弱水?。辉谧儞Q域的水印算法具有良好的魯棒性較強和容量較大等特點,所以主要用好的魯棒性較強和容量較大等特點,所以主要用途是設(shè)計魯棒水印,也可以與人類的知覺相互結(jié)途是設(shè)計魯棒水印,也可以與人類的知覺相互結(jié)
18、合從而使水印具有良好的保真度。合從而使水印具有良好的保真度。3、數(shù)字水印系統(tǒng)的組成、數(shù)字水印系統(tǒng)的組成一個數(shù)字水印系統(tǒng)一般包括一個數(shù)字水印系統(tǒng)一般包括3個基本方面:水印的生個基本方面:水印的生成、水印的嵌入和水印的提取或檢測。數(shù)字水印成、水印的嵌入和水印的提取或檢測。數(shù)字水印技術(shù)實際上是通過對水印載體媒質(zhì)的分析、嵌入技術(shù)實際上是通過對水印載體媒質(zhì)的分析、嵌入信息的預(yù)處理、信息嵌入點的選擇、嵌入方式的信息的預(yù)處理、信息嵌入點的選擇、嵌入方式的設(shè)計、嵌入調(diào)制的控制等幾個相關(guān)技術(shù)環(huán)節(jié)進行設(shè)計、嵌入調(diào)制的控制等幾個相關(guān)技術(shù)環(huán)節(jié)進行合理優(yōu)化,尋求滿足不可感知性、安全可靠性、合理優(yōu)化,尋求滿足不可感知性、
19、安全可靠性、穩(wěn)健性等諸條件約束下的準(zhǔn)最優(yōu)化設(shè)計問題。而穩(wěn)健性等諸條件約束下的準(zhǔn)最優(yōu)化設(shè)計問題。而作為水印信息的重要組成部分作為水印信息的重要組成部分密鑰,則是每密鑰,則是每個設(shè)計方案的一個重要特色所在。往往可以在信個設(shè)計方案的一個重要特色所在。往往可以在信息處理、嵌入點的選擇和調(diào)制等不同環(huán)節(jié)入手完息處理、嵌入點的選擇和調(diào)制等不同環(huán)節(jié)入手完成蜜月的嵌入。成蜜月的嵌入。4、設(shè)計實現(xiàn)及測試、設(shè)計實現(xiàn)及測試1基于DCT域的魯棒水印水印的嵌入基于DCT的魯棒水印嵌入流程圖 具體步驟:具體步驟: 原始圖像的分塊原始圖像的分塊DCT變換變換 將原始圖像分割為互不覆蓋的將原始圖像分割為互不覆蓋的88子塊,再對
20、每子塊,再對每個子個子 塊進行塊進行DCT變換。變換。 基于紋理掩蔽特性的塊分類基于紋理掩蔽特性的塊分類 將水印信號盡可能嵌入到圖像中紋理較復(fù)雜的子將水印信號盡可能嵌入到圖像中紋理較復(fù)雜的子塊。塊。 水印的產(chǎn)生和嵌入水印的產(chǎn)生和嵌入 將二值水印圖像組成一維行向量,作為水印信息。將二值水印圖像組成一維行向量,作為水印信息。采采 用折衷辦法用折衷辦法,將水印信息嵌入到宿主圖像的中頻部將水印信息嵌入到宿主圖像的中頻部分分 程序代碼如下:程序代碼如下: clear all; k=20; %設(shè)置水印強度設(shè)置水印強度 blocksize=8; %設(shè)置圖像分塊為設(shè)置圖像分塊為8*8 midband= 0,0
21、,0,1,1,1,1,0; 0,0,1,1,1,1,0,0; 0,1,1,1,1,0,0,0; 1,1,1,1,0,0,0,0; 1,1,1,0,0,0,0,0; 1,1,0,0,0,0,0,0; 1,0,0,0,0,0,0,0; 0,0,0,0,0,0,0,0 ; message=imread(copyright.bmp);%讀入圖像讀入圖像“copyright”,并轉(zhuǎn)換成雙精度數(shù)組,并轉(zhuǎn)換成雙精度數(shù)組 message=imresize(message,28,28); %message=rgb2gray(message); imwrite(message,copyright.bmp,bmp)
22、; figure,imshow(message); message=double(message); Mm=size(message,1); %計算圖像的高度計算圖像的高度 Nm=size(message,2); %計算圖像的寬度計算圖像的寬度 n=Mm*Nm; message=round(reshape(message,1,n)./256);%將將水印圖像轉(zhuǎn)變?yōu)樗D像轉(zhuǎn)變?yōu)?維行向量,維行向量,message由由0,1構(gòu)成構(gòu)成 cover_object=imread(lena.bmp);%讀入原始宿主讀入原始宿主圖像,并轉(zhuǎn)換成雙精度數(shù)組圖像,并轉(zhuǎn)換成雙精度數(shù)組 %cover_object=
23、rgb2gray(cover_object); figure,imshow(cover_object); imwrite(cover_object,lena.bmp,bmp); cover_object=double(cover_object); Mc=size(cover_object,1); %計算原始宿主圖像的計算原始宿主圖像的高度高度 Nc=size(cover_object,2); %計算原始宿主圖像的計算原始宿主圖像的寬度寬度 c=round(Mc/8);d=round(Nc/8);m=c*d; %計計算圖像劃分的圖像塊算圖像劃分的圖像塊 xx=1; for j=1:c for i
24、=1:d pjhd(xx)=1/64*sum(sum(cover_object(1+(j-1)*8:j*8),(1+(i-1)*8):i*8); fc(xx)=1/64*sum(sum(cover_object(1+(j-1)*8:j*8),(1+(i-1)*8):i*8)-pjhd(xx).2); xx=xx+1; end end A=sort(fc); %取出方差最大的前取出方差最大的前n塊塊 B=A(c*d-n+1):c*d); %將水印信息嵌入到方差將水印信息嵌入到方差最大的前最大的前n塊塊 fc_o=ones(1,c*d); for g=1:n for h=1:c*d if B(g)
25、=fc(h) fc_o(h)=message(g); h=c*d; end end end message_vector=fc_o; watermarked_image=cover_object; rand(state,7); pn_sequence_zero=round(rand(1,sum(sum(midband); %嵌入水印嵌入水印 x=1;y=1; for(kk=1:m) %分塊分塊DCT變換變換 dct_block=dct2(cover_object(y:y+blocksize-1,x:x+blocksize-1); II=1; if(message_vector(kk)=0) f
26、or ii=1:blocksize for jj=1:blocksize if(midband(jj,ii)=1) dct_block(jj,ii)=dct_block(jj,ii)+k*pn_sequence_zero(II); II=II+1; end end end end %分塊分塊DCT反變換反變換 watermarked_image(y:y+blocksize-1,x:x+blocksize-1)=idct2(dct_block); if(x+blocksize)=Nc x=1;y=y+blocksize; else x=x+blocksize; end end watermark
27、ed_image_int=uint8(watermarked_image); %生成并輸出潛入水印后的圖像生成并輸出潛入水印后的圖像 imwrite(watermarked_image_int,dct2_watermarked.bmp,bmp); %顯示峰值信噪比顯示峰值信噪比 xsz=255*255*Mc*Nc/sum(sum(cover_object-watermarked_image).2); psnr=10*log10(xsz) %顯示嵌入水印后的圖像顯示嵌入水印后的圖像 figure; imshow(watermarked_image_int,) title(Watermarked
28、Image) (a) a) 原始圖像原始圖像 ( (b) b) 水印圖像水印圖像 (c) c) 嵌入水印后的圖像嵌入水印后的圖像 基于DCT的魯棒水印嵌入效果圖 嵌入過程中涉及多個一維數(shù)組:其中嵌入過程中涉及多個一維數(shù)組:其中message與與B是是1行行n列的一維數(shù)組;列的一維數(shù)組;fc_fc_o(即即mesaage_vector)均是均是1行行n列的一維數(shù)組;列的一維數(shù)組;pn_sequence_zero是是1行行22列的一維數(shù)組列的一維數(shù)組.message由嵌入的水印圖像決定,由嵌入的水印圖像決定,pn_sequence_zero由系統(tǒng)當(dāng)前的偽隨機數(shù)生成器由系統(tǒng)當(dāng)前的偽隨機數(shù)生成器狀態(tài)狀
29、態(tài)J唯一確定,唯一確定,message與與pn_sequence_zero均均有有0.1構(gòu)成。構(gòu)成。 具體實現(xiàn)過程中,現(xiàn)將一維數(shù)組具體實現(xiàn)過程中,現(xiàn)將一維數(shù)組fc_o全置為全置為1,方,方差數(shù)組差數(shù)組fc按降序排序得到方差最大的前按降序排序得到方差最大的前n數(shù)值,組數(shù)值,組成數(shù)組成數(shù)組B;其次,修改方差值最大的圖像塊對應(yīng);其次,修改方差值最大的圖像塊對應(yīng)的的fc_o(h)=message(1),修改方差值次之的圖像塊,修改方差值次之的圖像塊對應(yīng)的對應(yīng)的fc_o(h)=message(2), 以此類推,修改完以此類推,修改完m個數(shù)值得到一維數(shù)組個數(shù)值得到一維數(shù)組message_zero的的K倍后
30、,所有圖像塊進行倍后,所有圖像塊進行DCT中中頻的頻的22個系數(shù)嵌入為隨機序列個系數(shù)嵌入為隨機序列pn_sequence_zero的的K倍后,所有圖像塊進行倍后,所有圖像塊進行DCT逆變換,生成含逆變換,生成含水印的圖像。水印的圖像。 圖(圖(a)是)是256*256的灰度圖像的灰度圖像“l(fā)ena”。圖(。圖(b)64*64的水印圖像,圖(的水印圖像,圖(c)是在)是在lena圖像中嵌入圖像中嵌入水印之后的圖像。水印之后的圖像。 從結(jié)果可以看到,原始宿主圖像在嵌入水印之后從結(jié)果可以看到,原始宿主圖像在嵌入水印之后基本上沒有可見失真,其峰值信噪比基本上沒有可見失真,其峰值信噪比PSNR=45.6
31、286dB。PSNR越大,不可見性就越好,越大,不可見性就越好,因此該方法具有較好的不可見性。因此該方法具有較好的不可見性。4.2水印的提取水印的提取 基于基于DCT的數(shù)字水印提取過程如下:的數(shù)字水印提取過程如下: 原始圖像和待測圖像在原始圖像和待測圖像在DCT域進行求差運算,域進行求差運算,比較相關(guān)性,確定序列比較相關(guān)性,確定序列message_vector。 根據(jù)圖像塊的方差值的大小,確定紋理塊,從根據(jù)圖像塊的方差值的大小,確定紋理塊,從而確定水印曾經(jīng)的嵌入位置。而確定水印曾經(jīng)的嵌入位置。 根據(jù)序列根據(jù)序列message_vector以及紋理塊復(fù)雜度的以及紋理塊復(fù)雜度的次序形成一維水印序列
32、。次序形成一維水印序列。 將水印序列重新組成二維水印恢復(fù)圖像。將水印序列重新組成二維水印恢復(fù)圖像。 程序代碼如下:程序代碼如下: clear all; blocksize=8; %設(shè)定圖像的分塊設(shè)定圖像的分塊大小為大小為8*8 midband= 0,0,0,1,1,1,1,0; 0,0,1,1,1,1,0,0; 0,1,1,1,1,0,0,0; 1,1,1,1,0,0,0,0; 1,1,1,0,0,0,0,0; 1,1,0,0,0,0,0,0; 1,0,0,0,0,0,0,0; 0,0,0,0,0,0,0,0 ; cover_object=imread(lena.bmp); figure,im
33、show(cover_object); cover_object=double(cover_object); watermarked_image=imread(dct2_watermarked.bmp); figure,imshow(watermarked_image); watermarked_image=double(watermarked_image); Mw=size(watermarked_image,1); Nw=size(watermarked_image,2); c=Mw/8;d=Nw/8;m=c*d; orig_watermarked=imread(copyright.bmp
34、); %orig_watermarked=imresize(orig_watermarked,28,28); %orig_watermarked = rgb2gray(orig_watermarked); figure,imshow(orig_watermarked); orig_watermarked=double(orig_watermarked); Mo=size(orig_watermarked,1); No=size(orig_watermarked,2); n=Mo*No; rand(state,7); pn_sequence_zero=round(rand(1,sum(sum(m
35、idband); %提取水印提取水印 x=1; y=1; for(kk=1:m) dct_block1=dct2(watermarked_image(y:y+blocksize-1,x:x+blocksize-1); dct_block2=dct2(cover_object(y:y+blocksize-1,x:x+blocksize-1); II=1; for ii=1:blocksize for jj=1:blocksize if(midband(jj,ii)=1) sequence(II)=dct_block1(jj,ii)- dct_block2(jj,ii); II=II+1; end
36、 end end if(sequence=0) correlation(kk)=0; else correlation(kk)=corr2(pn_sequence_zero,sequence); end if(x+blocksize)=Nw x=1;y=y+blocksize; else x=x+blocksize; end end for(kk=1:m) if (correlation(kk)0.5) message_vector(kk)=0; else message_vector(kk)=1; end end xx=1 for j=1:c for i=1:d pjhd(xx)=1/64*
37、sum(sum(cover_object(1+(j-1)*8):j*8,(1+(i-1)*8):i*8); fc(xx)=1/64*sum(sum(cover_object(1+(j-1)*8):j*8,(1+(i-1)*8):i*8)-pjhd(xx).2); xx=xx+1; end end A=sort(fc);B=A(c*d-n+1):c*d); fc_o=ones(1,n); for g=1:n for h=1:c*d if B(g)=fc(h) fc_o(g)=message_vector(h); h=c*d; end end end message_vector=fc_o; me
38、ssage=reshape(message_vector(1:Mo*No),Mo,No);sim=corr2(orig_watermarked,message)imwrite(message,message.bmp,bmp);figure,imshow(message);(a)嵌入水印后的圖像 (b)提取出來的水印圖像 用于版權(quán)認證的水印算法必須具有較好的魯棒性,用于版權(quán)認證的水印算法必須具有較好的魯棒性,即數(shù)字水印必須很難被清除。通過實驗,上述算即數(shù)字水印必須很難被清除。通過實驗,上述算法生成的含水印圖像在經(jīng)過一定量的圖像裁剪或法生成的含水印圖像在經(jīng)過一定量的圖像裁剪或者適度的者適度的JPE
39、G壓縮后仍能從中提取出嵌入水印圖壓縮后仍能從中提取出嵌入水印圖像的大致輪廓,因此,該算法具有較好的魯棒性。像的大致輪廓,因此,該算法具有較好的魯棒性。4.3基于空域的脆弱水印基于空域的脆弱水印 水印的嵌入水印的嵌入 水印嵌入步驟:水印嵌入步驟: (1)將原始圖最低有效位將原始圖最低有效位(LSB)清清0,并分為互不,并分為互不覆蓋的覆蓋的88圖像塊圖像塊 (2)計算每個計算每個88塊分解(如基于塊分解(如基于LU分解)后矩分解)后矩陣陣u的跡,并將其作為嵌入的水印信息的跡,并將其作為嵌入的水印信息 (3)使用使用mean2( ) 函數(shù)計算每個函數(shù)計算每個88塊相鄰近塊相鄰近1616圖像塊的均值
40、,并嵌入到該圖像塊的均值,并嵌入到該88圖像塊特圖像塊特定的定的LSB位。位。 4)再將步驟(再將步驟(2)中計算的水印信息)中計算的水印信息 嵌入到由嵌入到由位置矩陣位置矩陣B決定的決定的88圖像塊圖像塊 中的相應(yīng)中的相應(yīng)LSB位,位,嵌入判別公式為:嵌入判別公式為: 程序代碼如下:程序代碼如下: clear Z=imread(lena.bmp); figure,imshow(Z); Z=double(Z); Mc=size(Z,1); Nc=size(Z,2); c=round(Mc/8); d=round(Nc/8); m=c*d;n=(c-2)*(d-2); blocksize=8;
41、B= 1 0 1 0 1 1 0 1; 1 0 1 0 1 0 1 1; 0 1 1 0 0 0 0 0; 0 1 0 1 1 1 0 0; 0 1 0 0 0 1 0 0; 1 0 0 1 1 1 1 1; 0 1 1 1 0 0 1 0; 1 0 1 1 1 1 1 0 ; ZM=floor(Z./2)*2; ZC=ZM; blo=blocksize/2; x=9;y=9; for (kk = 1:n) mean=mean2(ZC(y-4:y+blocksize-1+4,x-4:x+blocksize-1+4); mean=mod(floor(mean*10),10); meann=mea
42、n; i=0; while(meann=0) ZM(y+blocksize-1,x+blocksize-4+i)=ZM(y+blocksize-1,x+blocksize-4+i)+mod(meann,2); meann=floor(meann/2); i=i+1; end if (x+2*blocksize)=Nc x=9;y=y+blocksize; else x=x+blocksize; end end x=1;y=1; ZN=floor(ZM./2)*2; for (kk=1:m) q,u=qr(ZM(y:y+blocksize-1,x:x+blocksize-1); %qr分解分解
43、s,u,v=svd(ZM(y:y+blocksize-1,x:x+blocksize-1); %或奇異值分解或奇異值分解 l,u=lu(ZN(y:y+blocksize-1,x:x+blocksize-1); %或或lu分解分解 tra=floor(trace(u)*1000); for ii=1:blocksize for jj=1:blocksize if(B(ii,jj)=1&tra=0) ZM(y+ii-1,x+jj-1)=ZM(y+ii-1,x+jj-1)+mod(tra,2); tra=floor(tra/2); end end end if(x+blocksize=Nc)
44、 x=1; y=y+blocksize; else x=x+blocksize; end end xsz=480*480*max(max(Z.2)/sum(sum(Z-ZM).2); psnr=10*log10(xsz) figure,imshow(uint8(ZM); ZM(65:136,209:256)=ZM(179:250,183:230); ZA=uint8(ZM); imwrite(ZA,watermarked.bmp,bmp); figure,imshow(ZA);4.4水印的提取及篡改檢測水印的提取及篡改檢測 將待檢測圖像分為互不覆蓋的將待檢測圖像分為互不覆蓋的88圖像塊。圖像塊。 與水印嵌入過程類似,計算出每個與水印嵌入過程類似,計算出每個88塊塊 的水印信息。的水印信息。 將步驟中計算的水印信息與將步驟中計算的水印信息與LSB平面提取平面提取 的數(shù)值相比較,若相異則判斷發(fā)生篡改。的數(shù)值相比較,若相異則判斷發(fā)生篡改。 程序代碼如下:程序代碼如下: clear all Z=imread(watermarked.bmp); figure,im
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《貴州豐采能源開發(fā)有限公司織金縣珠藏鎮(zhèn)宏發(fā)煤礦(變更)礦產(chǎn)資源綠色開發(fā)利用方案(三合一)》評審意見
- 統(tǒng)編版小學(xué)語文二年級下冊第4課《鄧小平爺爺植樹》精美課件
- 近視手術(shù)后護理
- 2025年呼和浩特a2貨運從業(yè)資格證模擬考試
- 2025年石家莊從業(yè)資格貨運資格考試題庫答案解析
- 2025年萍鄉(xiāng)經(jīng)營性道路客貨運輸駕駛員從業(yè)資格考試
- 2025年唐山貨運從業(yè)資格證考試題及答案
- 2025年銀川貨運上崗證考試題
- 治酒工藝知識培訓(xùn)課件
- 四川省瀘州市2024-2025學(xué)年高一上學(xué)期期末考試歷史試題(解析版)
- 民兵教練員四會教案模板
- 起重吊裝作業(yè)安全培訓(xùn)考核試卷
- 時政述評巴以沖突課件-2024屆高考政治一輪復(fù)習(xí)
- 三級綜合醫(yī)院評審標(biāo)準(zhǔn)(2024年版)
- 2024延長石油(集團)限責(zé)任公司社會招聘高頻難、易錯點500題模擬試題附帶答案詳解
- 中建《質(zhì)量標(biāo)準(zhǔn)化管理手冊》水利水電工程
- 聲樂老師招聘筆試題與參考答案(某大型央企)
- 湘教版四年級美術(shù)下冊 3 春天來了 教案
- 上海市靜安區(qū)2025年高三第一次聯(lián)考英語試題含解析
- 3.1 細胞膜的結(jié)構(gòu)和功能課件-高一上學(xué)期生物人教版必修1
- 天津市2024年中考英語模擬試卷(含答案)2
評論
0/150
提交評論