《物聯(lián)網(wǎng)信息安全》實(shí)驗指導(dǎo)書_第1頁
《物聯(lián)網(wǎng)信息安全》實(shí)驗指導(dǎo)書_第2頁
《物聯(lián)網(wǎng)信息安全》實(shí)驗指導(dǎo)書_第3頁
《物聯(lián)網(wǎng)信息安全》實(shí)驗指導(dǎo)書_第4頁
《物聯(lián)網(wǎng)信息安全》實(shí)驗指導(dǎo)書_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、v1.0可編輯可修改實(shí)驗一 圖像輸入與輸出基本操作(2學(xué)時)實(shí)驗二 基于DCTM的數(shù)字水印技術(shù)(2學(xué)時)綜合性實(shí)驗基于傅立葉域變換的數(shù)字水印技術(shù)(4學(xué)時)實(shí)驗前預(yù)備知識:數(shù)字水印技術(shù)是利用數(shù)字產(chǎn)品普遍存在的冗余數(shù)據(jù)與隨機(jī)性,將水印信息嵌入在數(shù)字產(chǎn)品本身中,從而起到保護(hù)數(shù)字產(chǎn)品版權(quán)或者完整性的一種技術(shù)?,F(xiàn)在學(xué)術(shù)界對數(shù)字水印算法的理解都是將一些不易察覺的具有隨機(jī)特性的數(shù)據(jù)嵌入到圖像頻域或空域的系數(shù)上。從信號處理的角度看,嵌入水印可以看成是在強(qiáng)背景下迭加一個弱信號,由于人類視覺系統(tǒng)的分辨率受到一定的限制,只要迭加的信號幅度不超過 HVS的對比門限,人眼就無法感覺到信號的存在,所以可以通過對原始圖像進(jìn)

2、行一定調(diào)整,在不影響視覺效果的情況下嵌入一些水印信息。數(shù)字水印系統(tǒng)的一般模型如圖1所示:水印嵌入器攻擊水印檢測器 R 1 Y .*水印信號況 一,0仃理】| 葭丫兇 MA宿主信號s1密鑰E 圖1 數(shù)字水印系統(tǒng)基本模型水印嵌入器的輸入量有三個:水印信號 M宿主信號S和密鑰(水印信號M是指原始水?。▓D像或一個數(shù)字序列)通過一定的方法經(jīng)過調(diào)制將嵌入到宿主信號中的數(shù)字信號。宿主信號S是指被嵌入水印的信號(原始信號)密鑰K則指用于提高水印系統(tǒng)安全性的密碼信息,它獨(dú)立于宿主信號。密鑰有私有密鑰和公共密鑰之分,前者指攻擊者在明確了水印嵌入方法但又不知道密鑰的情況下,水印不會被破壞或盜??;后者是指攻擊者對宿主

3、信號(如內(nèi)容標(biāo)識、語言字幕等)不感興趣的情況下,密鑰也就不存在保密性,可以作為公共密鑰。實(shí)驗一圖像輸入與輸由基本操作一、實(shí)驗題目:圖像輸入與輸出操作二、實(shí)驗?zāi)康膶W(xué)習(xí)在MATLAM境下對圖像文件的I/O操作,為讀取各種格式的圖像文件和 后續(xù)進(jìn)行圖像處理打下基礎(chǔ)。三、實(shí)驗內(nèi)容利用MATLA斯用戶提供的專門函數(shù)從圖像格式的文件中讀/寫圖像數(shù)據(jù)、顯示圖像,以及查詢圖像文件的信息。四、預(yù)備知識熟悉MATLABT發(fā)環(huán)境。五、實(shí)驗原理(1)圖像文件的讀取利用imread函數(shù)可以完成圖像文件的讀取操作。常用語法格式為:I=imread( 'filename ' , 'fmt')

4、或 I=imread( '');其作用是將文件名用字符串filename表示的、擴(kuò)展名用字符串fmt (表示圖像文 件格式)表示的圖像文件中的數(shù)據(jù)讀到矩陣I中。當(dāng)filename中不包含任何路徑 信息時,imread會從當(dāng)前工作目錄中尋找并讀取文件。要想讀取指定路徑中的圖像,最簡單的方法就是在filename中輸入完整的或相對的地址。MATLAB支持多種圖像文件格式的讀、寫和顯示。因此參數(shù)fmt常用的可能值有:'bmpp Windows位圖格式'jpg ' or 'jpeg '聯(lián)合圖像專家組格式'tif ' or '

5、;tiff ' 標(biāo)志圖像文件格式'gif '圖形交換格式pcxWindows畫刷格式png可移動網(wǎng)絡(luò)圖形格式xwdX Window Dump 格式例如,命令行>>I=imread('');將JPEG圖彳象lena讀入圖像矩陣I中。(2)圖像文件的寫入(保存)利用imwrite完成圖像的輸出和保存操作,也完全支持也完全支持上述各種圖像文件的格式。其語法格式為:imwrite(I, "filename ' , 'fmt')或 imwhte(I,'');其中的I、filename和fmt的意義同上所

6、述。注意事項:當(dāng)利用imwrite函數(shù)保存圖像時,MATLA蹴認(rèn)的保存方式是將其 簡化為uint8的數(shù)據(jù)類型。與讀取文件類型類似,MATLA而文件保存時還支持16 位的PN3口 TIFF圖像。所以,當(dāng)用戶保存這類文件時,MATLA就將其存儲在uint16 中。(3)圖像文件的顯示圖像的現(xiàn)實(shí)過程是將數(shù)字圖像從一組離散數(shù)據(jù)還原為一幅可見圖像的過程。MATLAB勺的圖像處理工具箱提供了多種圖像顯示技術(shù)。例如imshow可以直接從文件顯示多種圖像;image函數(shù)可以將矩陣作為圖像;colorbar函數(shù)可以用來顯示顏色條;montage函數(shù)可以動態(tài)顯示圖像序列。這里僅對常用的顯示函數(shù)進(jìn)行 介紹。圖像的顯

7、示imshow函數(shù)是最常用的顯示各種圖像的函數(shù),其調(diào)用格式如下:imshow(I,N);imshow(I,N)用于顯示灰度圖像,其中I為灰度圖像的數(shù)據(jù)矩陣,N為灰度級 數(shù)目,默認(rèn)值為256。例如下面的語句用于顯示一幅灰度圖像:> > I=imread( ,);> > imshow(I);如果不希望在顯示圖像之前裝載圖像,那么可以使用以下格式直接進(jìn)行圖像 文件的顯示:imshow filename其中,filename為要顯示的圖像文件的文件名。實(shí)例1-1顯示一幅在當(dāng)前目錄下的.bmp格式的圖像:>>imshow顯示結(jié)果如圖所示。圖1.1.1 顯示一幅圖像文件

8、中的圖像注意事項:該文件名必須帶有合法的擴(kuò)展名(指明文件格式),且該圖像文件必須保存在當(dāng)前目錄下,或在 MATLABt認(rèn)的目錄下。添加色帶colorbar函數(shù)可以給一個坐標(biāo)軸對象添加一條色帶。如果該坐標(biāo)軸對象包含 一個圖像對象,則添加的色帶將指示出該圖像中不同顏色的數(shù)據(jù)值。這對于了解 被顯示圖像的灰度級特別有用。其調(diào)用格式為:colorbar實(shí)例1-2> > I=imread( ,);> > imshow(I);> > colorbar;圖1.1.2顯示圖像并加入顏色條從上圖可知,該圖像是數(shù)據(jù)類型為uint8的灰度圖像,具灰度級范圍從0 255。顯示多幅圖像

9、顯示多幅圖像最簡單的方法就是在不同的圖形窗口中顯示它們。imshow總是在當(dāng)前窗口中顯示一幅圖像,如果用戶想連續(xù)顯示兩幅圖像,那么第二幅圖像就 會替代第一幅圖像。為了避免圖像在當(dāng)前窗口中的覆蓋現(xiàn)象,在調(diào)用imshow函數(shù)顯示下一幅圖像之前可以使用 figure命令來創(chuàng)建一個新的窗口。例如:imshow(I1);figure, imshow(I2);figure, imshow(I3);有時為了便于在多幅圖像之間進(jìn)行比較,需要將這些圖像顯示在一個圖形窗口中。達(dá)到這一目的有兩種方法:一種方法是聯(lián)合使用imshow和subplot函數(shù),但此方法在一個圖形窗口只能有一個調(diào)色板;另一種方法是聯(lián)合使用su

10、bimage和subplot函數(shù),此方法可在一個圖形窗口內(nèi)使用多個調(diào)色板。subplot函數(shù)將一個圖形窗口劃分為多個顯示區(qū)域,其調(diào)用格式如下:subplot(m,n,p)subplot函數(shù)將圖形窗口劃分為m (行)x n (列)個顯示區(qū)域,并選擇第p個區(qū)域作為當(dāng)前繪圖區(qū)。例1-3用兩排顯示四幅圖像,可以使用以下語句:> > I1=imread( '');> > I2=imread( ,);> > I3=imread( ,);> > I4=imread( ,);> > subplot (2,2,1 ) , imshow(

11、I1);> > subplot (2,2,2 ) , imshow(I2);> > subplot (2,2,3 ) , imshow(I3);> > subplot (2,2,4 ) , imshow(I4);圖1.1.3 在一個圖形窗口中顯示多幅圖像(4)圖像文件信息的查詢imfinfo 函數(shù)用于查詢圖像文件的有關(guān)信息,詳細(xì)地顯示出圖像文件的各種 屬性。其語法格式為:info=imfinfo( 'filename ' , 'fmt')或 info=imfinfo( '')或 imfinfoimfinfo函數(shù)

12、獲取的圖像文件信息依賴于文件類型的不同而不同,但至少應(yīng)包 含以下內(nèi)容:文件名。如果該文件不在當(dāng)前目錄下,還包含該文件的完整路徑。文件格式。文件格式的版本號。文件最后一次修改的時間。文件的大小。以字節(jié)為單位。圖像的寬度。圖像的高度。每個像素所用的比特數(shù)。也叫像素深度。圖像類型。即該圖像是真彩色圖像、索引圖像還是灰度圖像。例如,命令行>>imfinfo會輸出如下信息(注意,在這種情況下,有些域不包含信息):Filename:''FileModDate:'04-Jan-2003 12:31:26'FileSize:13849Format:'jpg

13、'FormatVersion:''Width:714Height:682BitDepth:8ColorType:' grayscale 'Formatsignature:Comment:。六、實(shí)驗步驟:(1)利用imread函數(shù)完成對圖像文件的讀取操作。(2)利用imwrite函數(shù)完成圖像的寫入(保存)操作(3)利用imshow函數(shù)顯示圖像。(4)利用imfinfo函數(shù)查詢圖像文件的有關(guān)信息。實(shí)驗二 基于DCT域的數(shù)字水印技術(shù)離散余弦變換,簡稱DCT是一種實(shí)數(shù)域變換,其變換核為實(shí)數(shù)的余弦函數(shù), 計算速度較快,是一種近似最佳變換,很適合于做圖象壓縮和隨機(jī)信

14、號處理,它 對常用的圖象壓縮有較強(qiáng)的魯棒性?;贒CT域的數(shù)字水印算法,一般而言有兩種算法。一種是直接對整幅圖像 進(jìn)行DCT計算,選取合適頻段的系數(shù),嵌入水印。另一種是,首先將整幅圖像分 成塊,對每一塊分別進(jìn)行 DCT計算,在每一塊中選取合適頻段的系數(shù),將水印信 息分散嵌入到每一塊所選取的 DCT系數(shù)中。這種方法稱為分塊 DCT這種方法非 常適合于8X8的圖像塊DC儂換。目前,DCTM的水印方法大多數(shù)是采用分塊 DCT 方法。二維DCT概述:一般而言,數(shù)字圖象S(m,n),0 m M ,0 n N ,其二維DCT 變換用矩陣S表小,其定義式如下式所?。?4-1)2 M 1N1(2i 1)k(2

15、 i 1)lS(k,l) C1(k)c2(l)S(i, j)cos( )cos(-j).M N i o j oCC22M2N二維IDCT定義網(wǎng)如下:c M 1N 1_2S(i, j) ,C1(k)C2(l)S(k,l)Cos(.M N k 0 10c1C2(2i 1)k2M)cos(2j 1)l2N(4-2)其中 i,k 0,1,2,M 1, j,l 0,1,2,N 1 ,并且1,k 0C1 (k)、. 21,k 1,2,.M 1C2(l)12,l 01,l 1,2,.N(4-3)我們最常用到的是 8X8分塊DCT也就是首先將大小為MX N的圖像分成(M/8) (N/8) (M N)/64的非

16、重疊的大小為8 X 8的塊,然后對每一塊作 DCT根據(jù)式(4-1 )和式(4-2), 8X8DCT勺定義如下:S(k,l)( Cl 7 7 S(i, j)Cos( 1)k )COs(2j 1)l )(4-4)22 i 0 j 016168X8IDCT的定義如下:S(i,j) 7 7 e 嗎(k,l)Cos(Q區(qū))8$(2-1)(4-5)k 0l 0221616其中,i, j,k,l0,1,2,.7 ,并且11. c,k 0,l 0C1(k)42C2。)正(4-6)1,k 1,2,.71,l 1,2,.7實(shí)驗?zāi)康模簩W(xué)習(xí)使用基于DCT域數(shù)字水印嵌入算法和基于 DCT域數(shù)字水印檢測提取算法。實(shí)驗內(nèi)容

17、和原理:(1)基于DCTM數(shù)字水印嵌入算法:DCT域的水印嵌入過程,就是首先對宿主圖像S進(jìn)行分塊DCT運(yùn)算,選取出要嵌入的DCT系數(shù)C,并且對宿主圖像用HVS模型進(jìn)行分析,得到感知系數(shù)掩蔽 模板,用其來控制水印嵌入強(qiáng)度,再將編碼后的水印信號WW用一定方式嵌入到選好的系數(shù)中。用嵌入水印的系數(shù)替代原來位置的系數(shù),再進(jìn)行逆DCT( InverseDiscrete Cosine Transform,IDCT )變換,就得到了含有水印的圖像 X。DCT®水 印系統(tǒng)的水印嵌入過程框圖如圖1所示:(2)基于DCTM數(shù)字水印檢測提取算法:DCTM水印的驗證過程(即包括水印的檢測和提取過程),就是將待

18、測圖像 Y(注意此時的圖像也許已經(jīng)遭受了圖象處理或惡意攻擊)進(jìn)行DCT運(yùn)算;然后按著嵌入水印時選取的DCTS數(shù),選取其含有水印的系數(shù),進(jìn)行水印提取,然后利用相關(guān)檢測法判斷水印是否存在。如果水印檢測器輸出結(jié)果顯示水印存在,則根據(jù)需要可以用水印解碼器對提取的水印進(jìn)行解碼,恢復(fù)水印。水印檢測提取過程- 36 -如圖2宿主信號s 水印信號W待測圖像了 k DCT W*HVE.中行水卬檢 測器A水印解解碼水印I M密鑰K圖2 DCT域數(shù)字水印檢測提取框圖實(shí)驗操作方法與步驟:(1)水印嵌入步驟如下:1 .將宿主圖像S(i,j),(i 1,2,.,M;j 1,2,., N)分成8X8的塊,每一塊都進(jìn)行DCT

19、變換,得到與宿主圖象相同尺寸的DCT域系數(shù)矩陣 S(i, j),(i 1,2,.,M; j 1,2,.,N)o2 .產(chǎn)生兩個不相關(guān)的偽隨機(jī)序列,并設(shè)定一個密鑰key。3 .將每個8X8的DCTS數(shù)矩陣,從每一塊的中頻段取出(64 8)/(M N )個 系數(shù) CkG,j),(k 1,2,.,Bnum)。4 .然后嵌入水印,嵌入規(guī)則為當(dāng)水印圖像元素為0'時,按照式子W' W(1 alpha * mark)(其中alpha為尺度因子,mark為隨機(jī)序列,W為原圖像的分塊DCT8數(shù)),將一個隨機(jī)序列與原始圖像塊的幅度譜對應(yīng)元素進(jìn)行乘性疊加;為1'時,用另一個偽隨機(jī)序列與幅度譜對

20、應(yīng)元素進(jìn)行乘性疊加。5,用得到的新的DCT系數(shù)對原來位置的DCT系數(shù)進(jìn)行置換。6.對新的DCT系數(shù)矩P$進(jìn)行DCT®變換,得到了嵌入水印信號的圖像。(2)水印檢測提取步驟如下:1,對含有水印圖像進(jìn)行8X8的塊DC儂換。2,對每一塊的DC驚數(shù)進(jìn)行“之”字型排列,從我們已知的嵌入位置取出可 .一 . 能含有水印的系數(shù) Ck(i,j),將所有提取出的系數(shù),按順序組成新的系數(shù)序列 C(l),(l 1,2,.Nw)。3,用密鑰生成水印信號WN(0,1)4,將含水印的系數(shù)序列與水印信號進(jìn)行相關(guān)計算,得到歸一化相關(guān)系數(shù)N NC °實(shí)驗結(jié)果及分析:以下是尺度因子alpha=30時的實(shí)驗結(jié)果

21、,以及受到各種攻擊后所提取到的水 印圖像及其與原始水印圖像的相關(guān)系數(shù)N nc :原始的宿主圖像嵌入水印后的圖像圖3原始圖像和嵌入水印后的圖像此時,alpha=30直接提取的圖象圖4沒有受到攻擊的圖像及提取到的水印圖像此時相關(guān)系數(shù)Nnc=1加入白噪聲后的圖象圖5加入白噪聲后的圖像、原始水印和提取的水印圖像此時相關(guān)系數(shù) Nnc =高斯低逋謔波后的圖象高斯低通濾波后的圖像及提取的水印圖像此時相關(guān)系數(shù) Nnc =INC剪切后的圖象7剪切后的圖像及提取的水印圖像此時相關(guān)系數(shù) NNC =NC旋轉(zhuǎn)度后的圖8 旋轉(zhuǎn)10后的圖像及提取的水印圖像此時相關(guān)系數(shù) Nnc =結(jié)論:當(dāng)圖像(宿主信息)受到加噪、高斯低通濾

22、波、剪切等攻擊后,其可視度、提取的水印圖像與原始水印圖像的相似度(都在90%Z上)都是非常令人滿意的;當(dāng)受到旋轉(zhuǎn)攻擊后,其提取的水印圖像與原始水印圖像的相似度(不足50%卻令人感到失望,不過仍可證明水印信息的存在。程序參考:%法 %clear all;clc;%讀取水印圖像 %omark=double(imread(")/255;mo=size(omark,1);no=size(omark,2);%Z下生成水印信息%mark=omark;alpha=30;rand1=randn(1,8);rand2=randn(1,8);%讀取宿主圖像 %cimage=imread(");

23、figure。);subplot(2,3,1),imshow(cimage,),title('原始的宿主圖像);mc,nc=size(cimage);cda0=blkproc(cimage,8,8,'dct2');%水印 %cda1=cda0;for i=1:mofor j=1:nox=(i-1)*8;y=(j-1)*8;if mark(i,j)=1k=rand1;elsek=rand2;endcda1(x+1,y+8)=cda0(x+1,y+8)+alpha*k;cda1(x+2,y+7)=cda0(x+2,y+7)+alpha*k(2);cda1(x+3,y+6)=

24、cda0(x+3,y+6)+alpha*k(3);cda1(x+4,y+5)=cda0(x+4,y+5)+alpha*k(4);cda1(x+5,y+4)=cda0(x+5,y+4)+alpha*k(5);cda1(x+6,y+3)=cda0(x+6,y+3)+alpha*k(6);cda1(x+7,y+2)=cda0(x+7,y+2)+alpha*k;cda1(x+8,y+1)=cda0(x+8,y+1)+alpha*k(8); endend%假入水印后圖象 %wimage=blkproc(cda1,8,8,'idct2');wimage_1=uint8(wimage);im

25、write(wimage_1,",'bmp'););subplot(2,3,2),imshow(wimage,),title('嵌入水印后圖象'% 擊測試 %disp('1-加入白噪聲');disp('2-高斯低通濾波);disp('3-剪切圖像);disp('4-旋轉(zhuǎn)攻擊);disp('5-直接檢測')begin=input('請選擇攻擊(1-5 ):')switch begin%白噪聲 %case 1Aimage1=wimage;Wnoise=20*randn(size(Aim

26、age1);Aimage1=Aimage1+Wnoise;subplot(2,3,4),imshow(Aimage1,),title(att=Aimage1;imwrite(attj);%低通濾波 %case 2Aimage2=wimage;H=fspecial('gaussian',4,4,;Aimage2=imfilter(Aimage2,H);subplot(2,3,4),imshow(Aimage2,),title(att=Aimage2;imwrite(attj)%攻擊 %case 3Aimage3=wimage;Aimage3(1:128,1:128)=256;su

27、bplot(2,3,4),imshow(Aimage3,),title(att=Aimage3;imwrite(attj);%專攻擊 %case 4Aimage4=wimage;Aimage4=imrotate(Aimage4,10,'bilinear','crop');Aimage_4=mat2gray(Aimage4);subplot(2,3,4),imshow(Aimage_4,),title(att=Aimage_4;imwrite(attj);%受到攻擊%case 5subplot(2,3,4),imshow(wimage,),title( att=w

28、image;imwrite(attj);加入白噪聲后的圖象);'高斯低通濾波后的圖象);'剪切后的圖象);'旋轉(zhuǎn)10度后的圖象);'直接提取的圖像);end% 印 %tmark_0=att;tmark_0=blkproc(tmark_0,8,8,'dct2');pass=zeros(1,8);for i=1:mofor j=1:nox=(i-1)*8;y=(j-1)*8;pass(1)=tmark_0(x+1,y+8);pass(2)=tmark_0(x+2,y+7);pass(3)=tmark_0(x+3,y+6);pass(4)=tmark_

29、0(x+4,y+5);pass(5)=tmark_0(x+5,y+4);pass(6)=tmark_0(x+6,y+3);pass(7)=tmark_0(x+7,y+2);pass(8)=tmark_0(x+8,y+1);if (corr2(pass,rand1)>corr2(pass,rand2) tmark_1(i,j)=1;elsetmark_1(i,j)=0;endendend% NC (歸一化相關(guān)系數(shù))g_mark=double(tmark_1);o_mark=double(omark);m,n=size(g_mark);nc_0=0;nc_1=0;nc_2=0;for i=1

30、:mfor j=1:nnc_0=nc_0+g_mark(i,j)*o_mark(i,j);nc_1=nc_1+o_mark(i,j)*o_mark(i,j);nc_2=nc_2+g_mark(i,j)*g_mark(i,j);endendNC=nc_0/sqrt(nc_1*nc_2);%示提取水印 %subplot(2,3,5),imshow("),title('原始水印圖像');subplot(2,3,6),imshow(tmark_1,);name='提取得水印圖像;title(strcat(num2str(name),'NC=',num2

31、str(NC);綜合設(shè)計性實(shí)驗基于傅立葉域變換的數(shù)字水印技術(shù)實(shí)驗?zāi)康模簩W(xué)習(xí)使用基于傅立葉域的數(shù)字水印嵌入算法和基于DCT域數(shù)字水印檢測提取算法。實(shí)驗內(nèi)容和原理:傅立葉變換(Fourier Transform )是線性系統(tǒng)分析的一個有力工具,是研究信號的頻譜方法,它架起了時域和頻域之間的橋梁。使我們能夠定量分析諸如數(shù)字化系統(tǒng)、采樣點(diǎn)、電子放大器、卷積濾波器、噪聲等的作用,把傅立葉變換的 理論同其物理解釋相結(jié)合,將大大有助于解決大多數(shù)圖象處理問題。Fourier分析理論十分完善,既可以處理連續(xù)信號也可以處理離散信號。計算機(jī)只能處理離散信號,且在數(shù)字圖象處理中, 輸入圖像和 輸出圖像通 常都是二維的

32、,一般表示成二維數(shù)字矩陣,因此這里直接討論二維離散傅立葉變換(DFT和二維快速彳f立葉變換(FFT)。(1)二維離散傅立 葉變換 DFT ( Discrete Fourier Transform)二維離散傅立葉變換對定義式如下:N 1M 1j2 (ux vy)F(u,v) f (x, y)e 百 ,u 0,1,2 ,M 1;v 0,1,2 ,N 1y 0 x 0f(x, y)1 N 1M 1MN v 0u 0ux vxi2 ()F(u,v)e M N ,x 0,1,2,M 1;v 0,12(1-1 )(1-2 )二維離散傅立葉變換的傅立葉譜、相位、功率譜分別如下:傅立葉譜:_ 221 2F(u

33、,v)R2(u,v) I2(u,v)1-3相位:(u,v) arctgI(u,v) R(u,v)1-4功率譜:E(u,v)F(u,v)R2(u,v) 12(u,v)1-5式子(1-1 )可以分離為:F(u,v)N 1 j2 vye Ny 0M 1j 上 uxf(x,y)e Mx 0(1-6 )式子(1-2)可以分離為:1f(x,y) NN 1. 2jvye Nv 01 M 1j-ux>0F(u,v)eM(1-7 )由上兩式可知,二維傅立葉變換可由連續(xù)兩次一維傅立葉變換得到,從而將二維DFT分解為水平和垂直兩部分運(yùn)算,上式中方括號中的項表示在圖像的行上計算的DFT,方括號外邊的求和則實(shí)現(xiàn)結(jié)

34、果數(shù)組在列上的DFT,這種分解使我們可以用一維FFT來快速實(shí)現(xiàn)二維DFT(2)二維快速傅立葉變換 FFT (Fast Fourier Transform )FFT的基本思想是:令序列f (n)的長度N為N 2M ,如果不滿足,在尾部補(bǔ)零,沒有任何影響按n奇偶把f(n)分解為兩個N/2點(diǎn)的子序列:gi(m)f(2m),m 0,1,2,(N/2);(1-8)hi(m)f(2m 1), m 0,1,2,(N/2);(1-9)那么F(k)j knf (n)e Nn為偶數(shù)f (n)en為奇數(shù)2jknN(1-10)將(1-8)和(1-9)式代入上式得:N 1j2Nkm2NF(k)g1 (m)e 2m 0X

35、 12h1(m)em 0.2 L jFkm 22.(1-11)上式右邊的兩部分恰好是長度(周期)N2的g1(m), h1(m)的傅立葉變換G1(k),H1(k),所以:F(k) G1(k)j -ke N H1(k),k0,1,2,(1-12)NF(k 萬)G1(k) ejNkN H1(k),k0,1,2,(- 1)(1-13)這樣一個長度為N的DFT就分解為兩個長度為 M2的DFT然后進(jìn)行N/2次復(fù)數(shù)的蝶式運(yùn)算,再運(yùn)用分解-遞歸思想,分解M log N次,每一次均有M2個蝶式運(yùn)算,所以FFT的時間復(fù)雜度為O(NlogN)。FFT在圖像運(yùn)用中的思想是,先將原圖像進(jìn)行轉(zhuǎn)置,按行對轉(zhuǎn)置后的圖像矩陣做

36、一維FFT,將此變換所得的中間矩陣再轉(zhuǎn)置,再按對轉(zhuǎn)置后的中間矩陣做一維FFT,最后得到白就是二維 FFT實(shí)驗操作方法與步驟:(1)嵌入算法的步驟如下:1 .將宿主圖像f(i,j),(i 1,2,., M;j 1,2,. N)分成8X8的塊,每一塊都進(jìn)行 DFT變換,得到與宿主圖象相同尺寸的DFT域圖象系數(shù)矩陣Fk(i,j)。2 .產(chǎn)生兩個不相關(guān)的偽隨機(jī)序列,并設(shè)定一個密鑰key。3 .將每個8X8的DFT系數(shù)矩陣,從每一塊的中頻段取出(64 8)/(M N )個 系數(shù) CK(i,j),k 1,2,.,Bnum。4 .由于DFT域的幅度譜具有對稱性,為了水印嵌入后保持這種對稱性,也為了確?;謴?fù)圖

37、像像素值為實(shí)數(shù),嵌入水印時采用對稱嵌入。嵌入規(guī)則為當(dāng)水印 圖像元素為0'時,按照式子 W' W(1 alfa * mark)(其中alfa為尺度因子, mark為隨機(jī)序列,W為原圖像的分塊DFT系數(shù)),將一個隨機(jī)序列與原始圖像塊 的幅度譜對應(yīng)元素進(jìn)行乘性疊加;為1'時,用另一個偽隨機(jī)序列與幅度譜對應(yīng) 元素進(jìn)行乘性疊加。5 .用得到的新的DFT系數(shù)對原來位置的DFT系數(shù)進(jìn)行置換。6 .對每一圖像塊進(jìn)行DFT逆變換,得到含水印圖像。(2)提取算法步驟如下:1.將宿主圖像f(i,j),i 1,2,.,M ; j 1,2,., N分成8X8的塊,每一塊都進(jìn)行 DFT變換,得到與

38、宿主圖像相同尺寸的DFT域圖象系數(shù)矩陣Fk(i,j),i 1,.M ; j 1,.N o2 .對每一塊的DFT系數(shù)進(jìn)行“之”字型排列,從我們已知的嵌入位置取出可 . .一 . 能含有水印的系數(shù) Ck(i,j),將所有提取出的系數(shù),按順序組成新的系數(shù)序列 一、 C(l),l1,2,., Nw。3 .計算嵌入水印圖像塊的幅度譜與兩個偽隨機(jī)序列的相關(guān)性,假設(shè)嵌入的水印圖像矩陣為0'時疊加的是隨機(jī)序列 A,為1'時疊加的是隨機(jī)序列B,則提 取時如果嵌入水印幅度譜與隨機(jī)序列A的相關(guān)性大于其B的相關(guān)性,那么這個位置嵌入的是水印圖像矩陣0'元素。按這個規(guī)則即可提取出水印圖像。4 .將

39、含水印的系數(shù)序列與水印信號進(jìn)行相關(guān)計算,得到歸一化相關(guān)系數(shù)N NC。實(shí)驗結(jié)果與分析:以下是尺度因子alpha=260時的實(shí)驗結(jié)果,以及受到各種攻擊后所提取到的 水印圖像及其與原始水印圖像的相關(guān)系數(shù)Nnc :原始的宿主圖像圖1原始圖像與嵌入水印后的圖像圖2沒有受到攻擊的圖像和直接提取的水印圖像此時相關(guān)系數(shù)NNC =1NC加入白噪聲后的圖象圖3加入白噪聲后的圖像、原始水印圖像及提取的水印圖像此時相關(guān)系數(shù) Nnc =INC圖4高斯低通濾波后的圖像及提取的水印圖像此時相關(guān)系數(shù) Nnc =圖5剪切后的圖像及提取的水印圖像此時相關(guān)系數(shù) NNc =圖6旋轉(zhuǎn)后的圖像及提取的水印圖像此時相關(guān)系數(shù) Nnc =IN

40、C結(jié)論:由于DFT域?qū)θ中缘男D(zhuǎn)、平移和縮放變換具有不變性的特點(diǎn),基于DFT域的數(shù)字水印技術(shù)要比基于 DCTM的數(shù)字水印技術(shù)的魯棒性要強(qiáng)的多,特別是對于旋轉(zhuǎn)攻擊,前者的優(yōu)勢更加突出!程序參考:%«%< 印算法 %clear all;clc;%讀取水印圖象 %omark=double(imread(")/255;mo=size(omark,1);no=size(omark,2);%哪下生成水印信息%mark=omark;alpha=200;R1=randn(1,8);rand1=round(R1);R2=randn(1,8);rand2=round(R2);%(宿主圖

41、像 %cimage=imread(");figure。);subplot(2,3,1),imshow(cimage,),title('原始的宿主圖像');mc,nc=size(cimage);cimage=double(cimage);fft0=blkproc(cimage,8,8,'fft2');%水印 %fft_abs=abs(fft0);fft_angle=angle(fft0);fft1=fft_abs;for ii=1:mofor jj=1:nox=(ii-1)*8;y=(jj-1)*8;if mark(ii,jj)=1k=rand1;els

42、ek=rand2;endfft1(x+1,y+8)=fft_abs(x+1,y+8)+alpha*k(1);fft1(x+2,y+7)=fft_abs(x+2,y+7)+alpha*k(2);fft1(x+3,y+6)=fft_abs(x+3,y+6)+alpha*k(3);fft1(x+4,y+5)=fft_abs(x+4,y+5)+alpha*k(4);fft1(x+5,y+4)=fft_abs(x+5,y+4)+alpha*k(5);fft1(x+6,y+3)=fft_abs(x+6,y+3)+alpha*k(6);fft1(x+7,y+2)=fft_abs(x+7,y+2)+alpha

43、*k(7);fft1(x+8,y+1)=fft_abs(x+8,y+1)+alpha*k(8);endendfft_abs_0=fft1;fft_abs_1=(fft_abs_0.*exp(i*fft_angle);wimage_0=blkproc(fft_abs_1,8,8,'ifft2');wimage=abs(wimage_0);%示嵌入水印圖象%wimage_1=uint8(wimage);imwrite(wimage_1,",'bmp');subplot(2,3,2),imshow(wimage,),title('嵌入水印后的圖象);

44、% 種攻擊 %disp('1->加入白噪聲);disp('2->高斯低通濾波);disp('3->剪切圖像);disp('4->旋轉(zhuǎn)圖象);disp('5->直接檢測);begin=input(' 請選擇攻擊(1-5 )');switch begin%白噪聲 %case 1Aimage1=wimage;Wnoise=12*randn(size(Aimage1);Aimage1=Aimage1+Wnoise;subplot(2,3,4),imshow(Aimage1,),title('加入白噪聲后的圖象

45、);att=Aimage1;imwrite(attj);%高斯低通濾波 %case 2Aimage2=wimage;H=fspecial('gaussian',4,4,;Aimage2=imfilter(Aimage2,H);subplot(2,3,4),imshow(Aimage2,),title('高斯低通濾波后的圖象');att=Aimage2;imwrite(attj)%n攻擊 %case 3Aimage3=wimage;Aimage3(1:128,1:128)=256;subplot(2,3,4),imshow(Aimage3,),title('

46、;剪切后的圖象');att=Aimage3;imwrite(attj);%專攻擊 %case 4Aimage4=wimage;Aimage4=imrotate(Aimage4,10,'bilinear','crop');Aimage_4=mat2gray(Aimage4);subplot(2,3,4),imshow(Aimage_4,),title('旋轉(zhuǎn) 10度后的圖象);att=Aimage_4;imwrite(attj);%有受到攻擊 %case 5subplot(2,3,4),imshow(wimage,),title('直接提取的圖象');att=wimage;imwrite(attj);end%8%P %tmark_0=att;tmark_0=blkproc(tmark_0,8,8,'fft2');tmark_0=abs(t

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論