基于Matlab的數(shù)字水印設(shè)計(jì)基于空域的水印實(shí)現(xiàn)_第1頁(yè)
基于Matlab的數(shù)字水印設(shè)計(jì)基于空域的水印實(shí)現(xiàn)_第2頁(yè)
基于Matlab的數(shù)字水印設(shè)計(jì)基于空域的水印實(shí)現(xiàn)_第3頁(yè)
基于Matlab的數(shù)字水印設(shè)計(jì)基于空域的水印實(shí)現(xiàn)_第4頁(yè)
基于Matlab的數(shù)字水印設(shè)計(jì)基于空域的水印實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、目錄1設(shè)計(jì)目的12設(shè)計(jì)要求23相關(guān)知識(shí)33.1 數(shù)字水印的相關(guān)知識(shí)數(shù)字水印的相關(guān)知識(shí)33.2 數(shù)字水印技術(shù)的基本原理43.3數(shù)字水印的分類54設(shè)計(jì)內(nèi)容64.1 LSB算法介紹64.1.1 LSB算法的基本原理64.1.2 LSB算法基本步驟64.2 LSB算法的實(shí)現(xiàn)64.3設(shè)計(jì)流程圖74.3.1水印嵌入的流程圖74.3.2水印提取的流程圖85程序源代碼96仿真結(jié)果與分析126.1 嵌入水印后的運(yùn)行結(jié)果126.2 提取水印后的運(yùn)行結(jié)果136.3 結(jié)果分析147結(jié)論語(yǔ)158參考文獻(xiàn)161設(shè)計(jì)目的(1)了解數(shù)字水印的基本概念,深入理解基于LSB算法的數(shù)字水印嵌入與提取方法。(2)運(yùn)用MATLAB語(yǔ)言

2、編程實(shí)現(xiàn)圖像水印的嵌入和提取。(3)能夠顯示水印嵌入前后的載體圖像,能夠顯示嵌入與提取的水印。(4)熟練掌握 MATLAB軟件的基本操作。(5)學(xué)會(huì)掌握 MATLAB軟件的程序編程。(6)培養(yǎng)獨(dú)立分析和解決問(wèn)題的能力,學(xué)會(huì)撰寫課程設(shè)計(jì)的總結(jié)報(bào)告。2設(shè)計(jì)要求 本設(shè)計(jì)利用MATLAB進(jìn)行編程及仿真,仿真內(nèi)容為基于Matlab的數(shù)字水印設(shè)計(jì),基于空域的水印實(shí)現(xiàn)。擬利用所學(xué)數(shù)字圖象處理技術(shù)知識(shí),在MATLAB軟件系統(tǒng)上來(lái)實(shí)現(xiàn)對(duì)圖像水印的嵌入和提取。(1)掌握課程設(shè)計(jì)的相關(guān)知識(shí)、概念、思路及目的。(2)程序設(shè)計(jì)合理、能夠正確運(yùn)行且操作簡(jiǎn)單,可實(shí)施性強(qiáng)。(3)掌握數(shù)字水印技術(shù)的基本原理。(4)掌握基于空域

3、的LSB算法并明確程序操作步驟的先后順序。3相關(guān)知識(shí)3.1 數(shù)字水印的相關(guān)知識(shí)數(shù)字水印的相關(guān)知識(shí)數(shù)字水?。―igital Watermark)技術(shù)是指用信號(hào)處理的方法在數(shù)字化的多媒體數(shù)據(jù)中嵌入隱蔽的標(biāo)記,這種標(biāo)記通常是不可見(jiàn)的,只有通過(guò)專用的檢測(cè)器或閱讀器才能提取。數(shù)字水印是信息隱藏技術(shù)的一個(gè)重要研究方向。在數(shù)字水印技術(shù)中,水印的數(shù)據(jù)量和魯棒性構(gòu)成了一對(duì)基本矛盾。從主觀上講,理想的水印算法應(yīng)該既能隱藏大量數(shù)據(jù),又可以抗各種信道噪聲和信號(hào)變形。然而在實(shí)際中,這兩個(gè)指標(biāo)往往不能同時(shí)實(shí)現(xiàn),不過(guò)這并不會(huì)影響數(shù)字水印技術(shù)的應(yīng)用,因?yàn)閷?shí)際應(yīng)用一般只偏重其中的一個(gè)方面。如果是為了隱蔽通信,數(shù)據(jù)量顯然是最重要

4、的,由于通信方式極為隱蔽,遭遇敵方篡改攻擊的可能性很小,因而對(duì)魯棒性要求不高。但對(duì)保證數(shù)據(jù)安全來(lái)說(shuō),情況恰恰相反,各種保密的數(shù)據(jù)隨時(shí)面臨著被盜取和篡改的危險(xiǎn),所以魯棒性是十分重要的,此時(shí),隱藏?cái)?shù)據(jù)量的要求居于次要地位。數(shù)字水印技術(shù)是通過(guò)一定的算法將一些標(biāo)志性信息直接嵌到多媒體內(nèi)容當(dāng)中,但不影響原內(nèi)容的價(jià)值和使用,并且不能被人的知覺(jué)系統(tǒng)覺(jué)察或注意到。水印信息可以是作者的序列號(hào)、公司標(biāo)志、有特殊意義的文本等,可用來(lái)識(shí)別文件、圖像或音樂(lè)制品的來(lái)源、版本、原作者、擁有者、發(fā)行人、合法使用人對(duì)數(shù)字產(chǎn)品的擁有權(quán)。與加密技術(shù)不同,數(shù)字水印技術(shù)并不能阻止盜版活動(dòng)的發(fā)生,但它可以判別對(duì)象是否受到保護(hù),監(jiān)視被保護(hù)

5、數(shù)據(jù)的傳播、真?zhèn)舞b別和非法拷貝、解決版權(quán)糾紛并為法庭提供證據(jù)。為了給攻擊者增加去除水印的難度,目前大多數(shù)水印制作方案都采用密碼學(xué)中的加密(包括公開密鑰、私有密鑰)體系來(lái)加強(qiáng),在水印的嵌入、提取時(shí)采用一種密鑰,甚至幾種密鑰聯(lián)合使用。隨著計(jì)算機(jī)應(yīng)用逐漸廣泛、網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,使音頻、視頻等多媒體信息都能以數(shù)字形式傳輸和播放,從而使大規(guī)模非授權(quán)拷貝成為了可能,而這樣會(huì)損害音樂(lè)、電影、書籍和軟件等出版業(yè)的發(fā)展,為了保護(hù)知識(shí)產(chǎn)權(quán)引發(fā)了一個(gè)很有意義的研究方向:信息隱藏。本文首先介紹了了數(shù)字水印技術(shù)的原理和分類,接著對(duì)LSB算法原理及LSB算法實(shí)現(xiàn)進(jìn)行了介紹,最后使用MATLAB 對(duì)其加密過(guò)程進(jìn)行了仿真。

6、3.2 數(shù)字水印技術(shù)的基本原理 數(shù)字水印的主要目的是將特定的信息加入到需要保護(hù)的媒體信息中,加入的信息一般是能夠代表媒體信息版權(quán)的內(nèi)容,如公司標(biāo)志、媒體作者、特定代碼等,而且要保證數(shù)字水印能夠抵抗一定的攻擊,而不被輕易的破壞和修改,同時(shí)數(shù)字水印要能夠被提取或者能夠被檢測(cè)到。數(shù)字水印的具體內(nèi)容、算法、提取或檢測(cè)過(guò)程根據(jù)實(shí)際應(yīng)用有不同的要求。數(shù)字水印的嵌入和提取過(guò)程如圖3.1,圖3.2所示。水印信息密鑰圖像帶有水印的圖像加密算法圖3.1 數(shù)字水印的嵌入過(guò)程水印圖像密鑰原始水印解密算法圖3.2 數(shù)字水印的提取過(guò)程 圖3.1是數(shù)字水印的嵌入過(guò)程,加入密鑰可以提高數(shù)字水印的隱蔽性、抗攻擊性,而并非是必須

7、的。根據(jù)用途不同,嵌入的水印有些是需要還原的,而有些則只需驗(yàn)證水印的存在性,前者需要數(shù)字水印的提取算法,而圖3.2需要數(shù)字水印的檢測(cè)算法,根據(jù)具體的水印算法,嵌入或提取的過(guò)程可能有所不同。3.3數(shù)字水印的分類數(shù)字水印算法一般可分為兩種空域法和頻域法,頻域法有以下優(yōu)點(diǎn):(1)嵌入的水印信號(hào)能量可以分布到空域的所有像素上,有利于保證水印的不可見(jiàn) 性;(2)視覺(jué)系統(tǒng)(HVS)的某些特性(如頻率的掩蔽特性)可以更方便地結(jié)合到水印編碼過(guò)程中;(3)頻域法可與國(guó)際數(shù)據(jù)壓縮標(biāo)準(zhǔn)兼容,從而實(shí)現(xiàn)在壓縮域(compressed domain)內(nèi)的水印編碼。所以我們也以頻域法為主介紹MATLAB在數(shù)字水印技術(shù)中的使

8、用。 按數(shù)字水印的特性可分為魯捧數(shù)字水印和脆弱數(shù)字水印。魯棒數(shù)字水印主要用于標(biāo)識(shí)數(shù)字媒體信息的版權(quán)信息,它要求嵌入的水印能夠抵抗對(duì)媒體的常規(guī)編輯和惡意攻擊,在對(duì)媒體進(jìn)行如:裁剪、旋轉(zhuǎn)、縮放、壓縮的變換后水印信息不受到較大損害。而脆弱水印相反,它對(duì)攻擊敏感,可以根據(jù)脆弱水印的狀態(tài)判斷原始信息是否被修改過(guò)。 按數(shù)字水印所附載的媒體可分為圖像水印、音頻水印、視頻水印和文本水印等。每一種數(shù)字化的媒體都有相應(yīng)的水印算法,這也造成了數(shù)字水印算法的復(fù)雜性。 按數(shù)字水印隱藏的位置劃分可以分為空 (時(shí))域數(shù)字水印、頻域數(shù)字水印、時(shí)頻域數(shù)字水印和時(shí)間度數(shù)字水印。原始信息通常在空域或者時(shí)域上表示,根據(jù)信號(hào)處理理論有

9、多種變換將信號(hào)變化到另外的域上,每一種域上都可以嵌入數(shù)字水 印,也就產(chǎn)生了相應(yīng)的數(shù)字水印算法。 按數(shù)字水印的可見(jiàn)性可以分為可見(jiàn)數(shù)字水印和非可見(jiàn)數(shù)字水印??梢?jiàn)數(shù)字水印通常是將公司表示疊加到原始圖像上,算法比較簡(jiǎn)單,也有相應(yīng)的應(yīng)用軟件,如Undreamt Marking Technologies公司的Photo Watermark。而不可見(jiàn)數(shù)字水印要求嵌入的水印是不能被人的視覺(jué)系統(tǒng)感知的,其算法相對(duì)復(fù)雜。 關(guān)于數(shù)字水印算法的分類還有很多不同的分類方法,比如按用途劃分,按檢測(cè)過(guò)程劃分等,限于篇幅,本文僅介紹了較為常見(jiàn)的基于空域的LSB算法。4設(shè)計(jì)內(nèi)容4.1 LSB算法介紹 LSB是一種簡(jiǎn)單傳統(tǒng)的信息

10、隱藏算法,屬于數(shù)字水印技術(shù)中的一種。本文首先介紹了LSB技術(shù)的原理和特點(diǎn),然后討論了基于LSB的數(shù)字水印算法。最后利用MATLAB 2009 b對(duì)這一算法的加密過(guò)程進(jìn)行了仿真。4.1.1 LSB算法的基本原理 對(duì)空域的LSB做替換,用來(lái)替換LSB的序列就是需要加入的水印信息、水印的數(shù)字摘要或者由水印生成的偽隨機(jī)序列。由于水印信息嵌入的位置是LSB,為了滿足水印的不可見(jiàn)性,允許嵌入的水印強(qiáng)度不可能太高。然而針對(duì)空域的各種處理,如游程編碼前的預(yù)處理,會(huì)對(duì)不顯著分量進(jìn)行一定的壓縮,所以LSB算法對(duì)這些操作很敏感。因此LSB算法最初是用于脆弱性水印的。4.1.2 LSB算法基本步驟(1) 將得到的隱藏

11、有秘密信息的十進(jìn)制像素值轉(zhuǎn)換為二進(jìn)制數(shù)據(jù).(2) 用二進(jìn)制秘密信息中的每一比特信息替換與之相對(duì)應(yīng)的載體數(shù)據(jù)的最低有效位.(3)將得到的含秘密信息的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制像素值,從而獲得含秘密信息的圖像.4.2 LSB算法的實(shí)現(xiàn) LSB算法實(shí)現(xiàn)較為簡(jiǎn)單,首先,需要考慮嵌入的數(shù)字水印的數(shù)據(jù)量,如果嵌入最低的1位,則可以嵌入的信息量是原始圖像信息量的18,如果適用最低兩位則可以嵌入的信息量是14。但是嵌入的數(shù)字水印的信息量越大,同時(shí)對(duì)圖像的視覺(jué)效果影響也越大。在這里要嵌入一個(gè)二值的圖像。然后,適當(dāng)調(diào)整數(shù)字水印圖像的大小和比特位數(shù),以適應(yīng)數(shù)字水印圖像數(shù)據(jù)量的要求。最后,對(duì)原始圖像中要使用的最低位置0,

12、再將數(shù)字水印數(shù)據(jù)放人原始圖像的最低位即可。下面通過(guò)MATLAB 2009 b2實(shí)現(xiàn)這一算法。這里選用一幅3264*2448像素,256灰度的圖像,數(shù)字水印用“萬(wàn)泉公園”的字樣的二值圖像。 置0的方法是調(diào)用模2函數(shù)mod(a,2),將得到的數(shù)值與原水印相減,從而得到最低位為0的圖片。(使用兩位最低有效位的話則用模4函數(shù)mod(a,4)然后相減)。LSB算法簡(jiǎn)單,實(shí)現(xiàn)容易,同時(shí)可以保證數(shù)字水印的不可見(jiàn)性,由于可以在最低位的每個(gè)像素上都插人數(shù)字水印信息,因此有較大的信息嵌入量。LSB算法一般嵌入圖像的最低一位或者兩位,如果嵌入的位數(shù)太多,則會(huì)被人眼察覺(jué)到。但是由于數(shù)字水印位于圖像的不重要像素位上,因

13、此很容易被圖像過(guò)濾、量化和幾何型變等操作破壞,以致無(wú)法恢復(fù)數(shù)字水印。針對(duì)基本的LSB算法的缺點(diǎn),一些研究者也提出了一些改進(jìn)的算法,如奇偶標(biāo)識(shí)位隱藏算法、索引數(shù)據(jù)鏈隱藏算法等,這些算法能增強(qiáng)數(shù)字水印的隱蔽性。4.3設(shè)計(jì)流程圖4.3.1水印嵌入的流程圖讀取圖像和水印圖像 用bitset函數(shù)將原圖的最低有效位值換為水印的值得到有水印的圖像 圖4.1 水印嵌入的流程圖4.3.2水印提取的流程圖 讀取帶有水印的圖像和水印圖像用嵌入水印圖像的最低有效位重建水印 得到嵌入的水印 圖4.2水印提取的流程圖 5程序源代碼(1) 嵌入水印代碼clear all;% 保存開始時(shí)間start_time=cputime

14、; % 讀入原圖像file_name='E:1.BMP;cover_object,map=imread(file_name); % 讀入水印圖像file_name='E:2.BMP'message,map1=imread(file_name);message1=message;message=double(message); %轉(zhuǎn)換為double數(shù)message=fix(message./2); %轉(zhuǎn)換為0,1組成的矩陣message=uint8(message); %轉(zhuǎn)換為uint8數(shù) % 原圖的行數(shù)與列數(shù)Mc=size(cover_object,1); %原圖的行數(shù)

15、Nc=size(cover_object,2); %原圖的列數(shù) % 水印的行數(shù)與列數(shù)Mm=size(message,1); %水印的行數(shù)Nm=size(message,2); %水印的列數(shù)% 將水印擴(kuò)展為原圖像大小,并寫入watermarkfor ii = 1:Mcfor jj = 1:Ncwatermark(ii,jj)=message(mod(ii,Mm)+1,mod(jj,Nm)+1);% 用mod函數(shù)進(jìn)行求余處理endend % 將原圖的最低有效位值換為水印的值watermarked_image=cover_object;for ii = 1:Mcfor jj = 1:Ncwaterm

16、arked_image(ii,jj)=bitset(watermarked_image(ii,jj),1,watermark(ii,jj);% 用bitset函數(shù)將原圖的最低有效位值換為水印的值endend % 將嵌入水印圖像寫入lsb_watermarked.bmpimwrite(watermarked_image,'lsb_watermarked.bmp','bmp');% 顯示運(yùn)行時(shí)間elapsed_time=cputime-start_time, % 顯示嵌入水印圖像figure(1);subplot(1,2,1);imshow(watermarked_

17、image,);title('嵌入水印圖像');subplot(1,2,2);imshow(cover_object,);title('原圖像'); %擴(kuò)展后水印for ii = 1:Mcfor jj = 1:Ncwatermark1(ii,jj)=message1(mod(ii,Mm)+1,mod(jj,Nm)+1);%用mod函數(shù)對(duì)水印進(jìn)行擴(kuò)展endend %顯示結(jié)果figure(2);subplot(1,2,1);imshow(watermark1,);title('擴(kuò)展后的水印');figure(2);subplot(1,2,2);ims

18、how(message1,);title('原水印');(2) 水印的提取過(guò)程clear all;% 保存開始時(shí)間start_time=cputime; % 讀入嵌入水印圖像file_name='lsb_watermarked.bmp'watermarked_image=imread(file_name);% 嵌入水印圖像的行數(shù)與列數(shù) Mw=size(watermarked_image,1);%嵌入水印圖像行數(shù)Nw=size(watermarked_image,2);%嵌入水印圖像列數(shù) %讀入原始水印file_name='E:2.BMP'orig

19、_watermark=imread(file_name);%原始水印的行數(shù)與列數(shù)Mm=size(orig_watermark,1); %水印的行數(shù)Nm=size(orig_watermark,2); %水印的列數(shù) % 用嵌入水印圖像的最低有效位重建水印for ii = 1:Mwfor jj = 1:Nwwatermark(ii,jj)=bitget(watermarked_image(ii,jj),1); % 用bitget函數(shù)重建水印endend% 將提取水印變?yōu)樵妓〈笮atermark=2*double(watermark);for ii = 1:Mm-1for jj = 1:Nm-

20、1watermark1(ii+1,jj+1)=watermark(ii,jj);endendwatermark1(1,1)=watermark(Mm,Nm);% 顯示運(yùn)行時(shí)間elapsed_time=cputime-start_time,% 顯示嵌入水印圖像,提取水印以及原始水印figure(1);subplot(1,2,1);imshow(watermarked_image,);title('嵌入水印圖像'); figure(2);subplot(1,2,1);imshow(watermark1,);title('提取水印'); figure(2);subpl

21、ot(1,2,2);imshow(orig_watermark,);title('原始水印');6仿真結(jié)果與分析6.1 嵌入水印后的運(yùn)行結(jié)果(1) 根據(jù)水印嵌入算法及顯示函數(shù),得出原圖像和嵌入水印后的圖像,如圖6.1圖6.1 原圖像和嵌入水印后的圖像(2) 將要嵌入到圖像中的水印顯示出來(lái),如圖6.2圖6.2 原水印的圖像6.2 提取水印后的運(yùn)行結(jié)果(1) 將水印通過(guò)嵌入算法嵌入到圖像中,并將嵌入水印的圖像寫入到temp.jpg中,嵌入水印的圖像如圖6.3圖6.3 嵌入水印的圖像(2)通過(guò)提取水印的過(guò)程算法將水印從原圖像中提取出來(lái),如圖6.4圖6.4 原水印與提取的水印圖像6.3 結(jié)果分析(1)嵌入水印后的運(yùn)行結(jié)果結(jié)果圖如上圖6.1和圖6.2,圖6.1表示的是原圖像和嵌入水印后的結(jié)果圖像,圖 6.2表示的是原水印和擴(kuò)展后的水印的結(jié)果圖像。通過(guò)圖示顯示,可知LSB算法的實(shí)現(xiàn)簡(jiǎn)單和保證水印的不可見(jiàn)性.(2)提取水印后的運(yùn)行結(jié)果結(jié)果圖如上圖6.3和圖6

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論