數(shù)字圖像處理第10章_第1頁(yè)
數(shù)字圖像處理第10章_第2頁(yè)
數(shù)字圖像處理第10章_第3頁(yè)
數(shù)字圖像處理第10章_第4頁(yè)
數(shù)字圖像處理第10章_第5頁(yè)
已閱讀5頁(yè),還剩46頁(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、本章指導(dǎo):本章指導(dǎo):MATLABMATLAB是一套高性能的數(shù)值計(jì)算和可視化是一套高性能的數(shù)值計(jì)算和可視化軟件,其強(qiáng)大的圖形功能以及豐富的圖像軟件,其強(qiáng)大的圖形功能以及豐富的圖像處理工具函數(shù),使得處理工具函數(shù),使得MATLABMATLAB特別適合于圖特別適合于圖像處理學(xué)習(xí)和應(yīng)用。本章將結(jié)合數(shù)字水印像處理學(xué)習(xí)和應(yīng)用。本章將結(jié)合數(shù)字水印技術(shù),重點(diǎn)介紹如何利用技術(shù),重點(diǎn)介紹如何利用MATLABMATLAB實(shí)現(xiàn)圖像實(shí)現(xiàn)圖像處理的基本功能。處理的基本功能。第第1010章章 基于基于MATLABMATLAB數(shù)字水印系統(tǒng)設(shè)計(jì)數(shù)字水印系統(tǒng)設(shè)計(jì) 第第1010章章 基于基于MATLABMATLAB數(shù)字水印系統(tǒng)設(shè)計(jì)數(shù)

2、字水印系統(tǒng)設(shè)計(jì) 10.1 10.1 MATLABMATLAB簡(jiǎn)介簡(jiǎn)介 10.2 10.2 數(shù)字水印概述數(shù)字水印概述 10.3 10.3 基于基于DCTDCT域的魯棒水印域的魯棒水印 10.4 10.4 基于空域的脆弱水印基于空域的脆弱水印 10.5 10.5 基于基于DWTDWT域的脆弱水印域的脆弱水印 MATLABMATLAB是是MathWorkMathWork公司于公司于19821982年推出的一套高年推出的一套高性能的數(shù)值計(jì)算和可視化軟件,其強(qiáng)大的圖形功能性能的數(shù)值計(jì)算和可視化軟件,其強(qiáng)大的圖形功能以及豐富的圖像處理工具函數(shù),使得以及豐富的圖像處理工具函數(shù),使得MATLABMATLAB特

3、別適特別適合于圖像處理學(xué)習(xí)和應(yīng)用合于圖像處理學(xué)習(xí)和應(yīng)用。 MATLAB MATLAB是一個(gè)交互式系統(tǒng),其基本數(shù)據(jù)元素是是一個(gè)交互式系統(tǒng),其基本數(shù)據(jù)元素是無(wú)需定義的數(shù)組。與高級(jí)語(yǔ)言相比,它只需極少的無(wú)需定義的數(shù)組。與高級(jí)語(yǔ)言相比,它只需極少的代碼就可以解決眾多的數(shù)值問(wèn)題。因此,特別適合代碼就可以解決眾多的數(shù)值問(wèn)題。因此,特別適合解決需要矩陣運(yùn)算的工程問(wèn)題,在數(shù)字圖像處理領(lǐng)解決需要矩陣運(yùn)算的工程問(wèn)題,在數(shù)字圖像處理領(lǐng)域有重要的用途。域有重要的用途。10.1 MATLAB簡(jiǎn)介簡(jiǎn)介 10.1.1 MATLAB基礎(chǔ)基礎(chǔ)MATLAB是一種面向數(shù)組是一種面向數(shù)組(Array)的編程語(yǔ)言。的編程語(yǔ)言。數(shù)據(jù)類(lèi)型

4、的最大特點(diǎn)是每一種類(lèi)型都以數(shù)組為數(shù)據(jù)類(lèi)型的最大特點(diǎn)是每一種類(lèi)型都以數(shù)組為基礎(chǔ),從數(shù)組中派生出來(lái),基礎(chǔ),從數(shù)組中派生出來(lái),MATLAB把每種把每種類(lèi)型的數(shù)據(jù)都作為數(shù)組來(lái)處理。類(lèi)型的數(shù)據(jù)都作為數(shù)組來(lái)處理。在在MATLAB ,有有6種基本的數(shù)據(jù)類(lèi)型,即:種基本的數(shù)據(jù)類(lèi)型,即:char(字符字符)、double(雙精度數(shù)值雙精度數(shù)值)、sparse(稀疏稀疏數(shù)據(jù)數(shù)據(jù))、storage(存儲(chǔ)型存儲(chǔ)型)、cell(單元數(shù)組單元數(shù)組)和和struct(結(jié)構(gòu)結(jié)構(gòu))。數(shù)據(jù)類(lèi)型間的關(guān)系圖:數(shù)據(jù)類(lèi)型間的關(guān)系圖:數(shù)組(array)字符型(char)數(shù)值型(numeric) 單元數(shù)組(cell)結(jié)構(gòu)數(shù)組(struct)

5、雙精度(double)存儲(chǔ)型(storage)包括(int8,uint8,int16,uint16,Int32,uint32)稀疏數(shù)據(jù)(sparse)10.1.2 MATLAB的運(yùn)行的運(yùn)行MATLAB有兩種常用的工作模式:有兩種常用的工作模式: 1. 命令行輸入方式命令行輸入方式 2. M M文件的編程工作方式文件的編程工作方式 1.1.命令行輸入方式命令行輸入方式 例例10-110-1:已知矩陣:已知矩陣 ,矩陣,矩陣 ,求解矩陣乘以矩陣形成的新矩陣。求解矩陣乘以矩陣形成的新矩陣。只需在只需在MATLABMATLAB命令窗口內(nèi)提示符號(hào)(命令窗口內(nèi)提示符號(hào)()之后輸入如下)之后輸入如下表達(dá)式,

6、并按下表達(dá)式,并按下EnterEnter鍵即可:鍵即可: A=2 1 -3 -1;3 1 0 7;-1 2 4 -2;1 0 -1 5;A=2 1 -3 -1;3 1 0 7;-1 2 4 -2;1 0 -1 5; B=3 -1 0 4;2 1 5 -2;-1 0 7 5;-4 8 0 1; B=3 -1 0 4;2 1 5 -2;-1 0 7 5;-4 8 0 1; A A* *B B5101242170131312A1084570125124013B2.2.M M文件的編程工作方式文件的編程工作方式MATLABMATLAB提供了提供了M M文件編輯器作為編制和調(diào)試文件編輯器作為編制和調(diào)試M

7、 M文文件的工作界面。件的工作界面。在在MATLABMATLAB的運(yùn)行環(huán)境中,用鼠標(biāo)單擊菜單欄上的運(yùn)行環(huán)境中,用鼠標(biāo)單擊菜單欄上的的 Fi1e-openFi1e-open命令,選擇命令,選擇 M-fileM-file項(xiàng),或項(xiàng),或者直接單擊工具欄的者直接單擊工具欄的 新建新建 按鈕,進(jìn)入按鈕,進(jìn)入MATLABMATLAB的的M M文件編輯器。文件編輯器。M M文件有兩種形式,一種是命令文件文件有兩種形式,一種是命令文件( (腳本文件腳本文件Script-file)Script-file);另一種是函數(shù)文件另一種是函數(shù)文件( (Function-Function-file)file)。例例10-2

8、10-2:建立命令文件,并繪制寶石項(xiàng)鏈圖。:建立命令文件,并繪制寶石項(xiàng)鏈圖。 (1) (1) 進(jìn)入進(jìn)入MATLABMATLAB的的M M文件編輯器文件編輯器 (2) (2) 在編輯器窗口中輸入文件內(nèi)容:在編輯器窗口中輸入文件內(nèi)容:t=(0:0.02:2)*pi; %(0:0.02:2)表示表示(0,2)之間以之間以0.02為間隔的向量為間隔的向量x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z,b-,x,y,z,bd)view(-80,60)box onlegend(鏈子鏈子,寶石寶石);(3)(3)單擊單擊 Fi1e -saveFi1e -save命令,將所寫(xiě)

9、文件自動(dòng)保存在命令,將所寫(xiě)文件自動(dòng)保存在磁盤(pán)目錄磁盤(pán)目錄D:D:MATLABMATLABworkwork上,并取名為上,并取名為diamond.mdiamond.m。(4)(4)在在MATLABMATLAB命令窗口中直接輸入文件名命令窗口中直接輸入文件名diamonddiamond回車(chē),回車(chē),即可得運(yùn)行結(jié)果。即可得運(yùn)行結(jié)果。MATLABMATLAB和大多數(shù)計(jì)算機(jī)語(yǔ)言一樣,提供了設(shè)計(jì)和大多數(shù)計(jì)算機(jī)語(yǔ)言一樣,提供了設(shè)計(jì)程序所必須的程序結(jié)構(gòu),即順序結(jié)構(gòu)、循環(huán)結(jié)程序所必須的程序結(jié)構(gòu),即順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和分支結(jié)構(gòu)。構(gòu)和分支結(jié)構(gòu)。在在MATLABMATLAB中,循環(huán)結(jié)構(gòu)由中,循環(huán)結(jié)構(gòu)由for-endfo

10、r-end循環(huán)語(yǔ)句和循環(huán)語(yǔ)句和while-endwhile-end循環(huán)語(yǔ)句實(shí)現(xiàn),分支結(jié)構(gòu)由循環(huán)語(yǔ)句實(shí)現(xiàn),分支結(jié)構(gòu)由if-endif-end語(yǔ)句和語(yǔ)句和switch-case-endswitch-case-end實(shí)現(xiàn)。實(shí)現(xiàn)。 例例10-310-3:繪制函數(shù):繪制函數(shù) 的圖像。的圖像。111101832xxxxxy其程序?yàn)椋浩涑绦驗(yàn)椋簒=-3:0.1:3;x=-3:0.1:3;if x=1if x=1 y=8 y=8* *x2+1;x2+1; plot(x,y) plot(x,y)Else if -1xElse if -1x y=0; y=0; plot(x,y) plot(x,y)elseels

11、e y=-x3; y=-x3; plot(x,y) plot(x,y)endend10.1.3 10.1.3 MATLABMATLAB圖像處理功能圖像處理功能 MATLAB豐富的圖像處理函數(shù)豐富的圖像處理函數(shù) 圖像文件輸入、輸出、顯示:圖像文件輸入、輸出、顯示:imread imwrite subplot計(jì)算圖像的傅立葉變換計(jì)算圖像的傅立葉變換FFT及逆變換及逆變換IFFT :fft2 2 ifft2 計(jì)算圖像的離散余弦變換計(jì)算圖像的離散余弦變換DCT及逆變換及逆變換IDCT:dct2 idct2計(jì)算圖像的小波變換計(jì)算圖像的小波變換DWT及逆變換及逆變換IDWT:dwt2 idwt2 常用的函

12、數(shù)簡(jiǎn)介常用的函數(shù)簡(jiǎn)介(1) (1) 函數(shù)名函數(shù)名: : uint8uint8格式格式: : uint8 (A);uint8 (A);功能功能: :將數(shù)據(jù)將數(shù)據(jù)A A轉(zhuǎn)換為轉(zhuǎn)換為8 8位無(wú)符號(hào)整數(shù)類(lèi)型數(shù)據(jù)位無(wú)符號(hào)整數(shù)類(lèi)型數(shù)據(jù)例如:例如:watermarked_image_uint8=uint8(watermarked_image_round);watermarked_image_uint8=uint8(watermarked_image_round);(2) (2) 函數(shù)名函數(shù)名: : doubledouble格式格式: : double(A);double(A); 功能功能: : 將數(shù)據(jù)將數(shù)據(jù)

13、A A轉(zhuǎn)換為轉(zhuǎn)換為6464位雙精度浮點(diǎn)類(lèi)型數(shù)據(jù)位雙精度浮點(diǎn)類(lèi)型數(shù)據(jù)例例: : double(imread(lena.bmpdouble(imread(lena.bmp););(3) (3) 函數(shù)名函數(shù)名: : imreadimread格式格式: :imreadimread(文件名文件名,文件格式,文件格式) )功能功能: : 讀取圖像文件數(shù)據(jù)讀取圖像文件數(shù)據(jù)例例: : Z=Z=imread(lena.bmpimread(lena.bmp) 其功能為將文件格式為其功能為將文件格式為bmpbmp的圖像文件的圖像文件lena.bmplena.bmp圖像數(shù)圖像數(shù)據(jù)讀取出來(lái),并作為無(wú)符號(hào)據(jù)讀取出來(lái),并作

14、為無(wú)符號(hào)8 8位整型數(shù)據(jù)位整型數(shù)據(jù)(unit8unit8)放放入二維數(shù)組變量入二維數(shù)組變量Z Z中。中。(4) (4) 函數(shù)名函數(shù)名: : imwriteimwrite格式格式: : imwriteimwrite (A (A,文件名文件名,文件格式,文件格式) )功能功能: :保存圖像文件數(shù)據(jù)保存圖像文件數(shù)據(jù)例例: : imwrite(ZA,watermarked.bmp,bmpimwrite(ZA,watermarked.bmp,bmp)其 功 能 為 將 變 量其 功 能 為 將 變 量 Z AZ A 中 的 圖 像 數(shù) 據(jù) 寫(xiě) 入 文 件 名 為中 的 圖 像 數(shù) 據(jù) 寫(xiě) 入 文 件 名

15、 為watermarked.bmpwatermarked.bmp的文件中,保存格式為的文件中,保存格式為bmpbmp。(5) (5) 函數(shù)名函數(shù)名: : imshowimshow格式格式: : imshow(I,LOWimshow(I,LOW HIGH) HIGH)功能功能: :顯示灰度圖像顯示灰度圖像例例: : imshow(ZAimshow(ZA,),) 顯示灰度圖像顯示灰度圖像ZAZA,并指定灰度級(jí)范圍并指定灰度級(jí)范圍 LOW HIGHLOW HIGH,若如不確若如不確定數(shù)據(jù)的范圍定數(shù)據(jù)的范圍 LOW HIGHLOW HIGH,可使用空矢量作為參數(shù)顯示圖像可使用空矢量作為參數(shù)顯示圖像。

16、(6) (6) 函數(shù)名函數(shù)名: : subplotsubplot格式格式: : subplot (m,n,p)subplot (m,n,p)功功能能: :將一個(gè)圖形窗口劃分為多個(gè)顯示區(qū)域?qū)⒁粋€(gè)圖形窗口劃分為多個(gè)顯示區(qū)域例例: : subplot(2,2,1)subplot(2,2,1); ; 將圖形窗口劃分為將圖形窗口劃分為2 22 2個(gè)矩形顯示區(qū)域,并激活第個(gè)矩形顯示區(qū)域,并激活第1 1個(gè)顯示區(qū)個(gè)顯示區(qū)域域。(7) (7) 函數(shù)名函數(shù)名: : fftfft2 2功能功能: :對(duì)矩陣對(duì)矩陣A A做二維快速傅立葉變換做二維快速傅立葉變換格式:格式:B=fft2(A,M,N)B=fft2(A,M,

17、N) A A表示要變換的矩陣,表示要變換的矩陣,M M和和N N是可選參數(shù),通過(guò)補(bǔ)是可選參數(shù),通過(guò)補(bǔ)0 0元素或截取多元素或截取多余元素,使余元素,使A A成為成為MN階矩陣,然后計(jì)算其二維階矩陣,然后計(jì)算其二維FFTFFT。B B表示變表示變換后得到的二維換后得到的二維FFT FFT 系數(shù)系數(shù)矩陣。矩陣。(8) (8) 函數(shù)名函數(shù)名: : fftshiftfftshift功能功能: :把傅立葉變換結(jié)果中的直流分量移到中間位置把傅立葉變換結(jié)果中的直流分量移到中間位置 格格式式:B=B= fftshiftfftshift (A) (A) 若若A A為向量,則為向量,則fftshiftfftshi

18、ft將其左、右半部互換,若將其左、右半部互換,若A A為矩陣,則為矩陣,則交換交換A A的的1 1,3 3象限和象限和2 2,4 4象限。對(duì)多維陣列,象限。對(duì)多維陣列,fftshiftfftshift對(duì)每一對(duì)每一維的兩個(gè)維的兩個(gè)“半空間半空間”進(jìn)行交換。進(jìn)行交換。fftshiftfftshift常用于常用于FFTFFT結(jié)果的可結(jié)果的可視化。視化。(9) (9) 函數(shù)名函數(shù)名: : ifft2ifft2功能功能: :對(duì)矩陣對(duì)矩陣B B做二維快速逆傅立葉逆變換做二維快速逆傅立葉逆變換格式:格式:A=ifft2(B,M,N)A=ifft2(B,M,N) B B 表示要變換的矩陣,表示要變換的矩陣,M

19、 M和和N N是可選參數(shù),通是可選參數(shù),通過(guò)補(bǔ)過(guò)補(bǔ)0 0元素或截取多余元素,使元素或截取多余元素,使B B成為成為MN階階矩陣,然后計(jì)算其二維矩陣,然后計(jì)算其二維FFTFFT。A A表示經(jīng)過(guò)二維表示經(jīng)過(guò)二維傅傅立葉逆變換立葉逆變換后的后的系數(shù)系數(shù)矩陣。矩陣。例例10-4: 10-4: 計(jì)算并顯示圖像的計(jì)算并顯示圖像的傅立葉變換傅立葉變換FFTFFT及逆變換及逆變換IFFTIFFT。I=I=imread(lena.bmpimread(lena.bmp););subplot(1,3,1), imshow(uint8(I); subplot(1,3,1), imshow(uint8(I); % %

20、顯示原始圖像顯示原始圖像J=fft2(I); J=fft2(I); % % 圖像圖像FFTFFT變換變換B=B=fftshift(Jfftshift(J); ); % % 顯示顯示FFTFFT變換結(jié)果變換結(jié)果subplot(1,3,2), subplot(1,3,2), imshow(log(abs(Bimshow(log(abs(B),); ),); H=ifft2(J); H=ifft2(J); % %使用逆變換復(fù)原圖像并顯示結(jié)果使用逆變換復(fù)原圖像并顯示結(jié)果subplot(1,3,3), subplot(1,3,3), imshow(uint8(H); imshow(uint8(H); 執(zhí)

21、行結(jié)果:執(zhí)行結(jié)果: (a)lena原圖原圖(b)經(jīng)過(guò)經(jīng)過(guò)FFT變換變換后的頻譜圖像后的頻譜圖像(c)經(jīng)經(jīng)IFFT后的圖像后的圖像 (10) (10) 函數(shù)名函數(shù)名: : dct2dct2功能:求矩陣功能:求矩陣A A的的DCTDCT變換系數(shù)變換系數(shù)格式:格式:B=dct2(A,M,N)B=dct2(A,M,N) A A表示要變換的矩陣,表示要變換的矩陣,M M和和N N是可選參數(shù),通過(guò)是可選參數(shù),通過(guò)補(bǔ)補(bǔ)0 0元素或截取多余元素,使元素或截取多余元素,使A A成為成為M MN N階矩陣,階矩陣,然后計(jì)算其二維然后計(jì)算其二維離散余弦變換離散余弦變換。B B表示變換后表示變換后得到的得到的離散余弦

22、變換系數(shù)離散余弦變換系數(shù)矩陣。矩陣。例例10-5:10-5:調(diào)用調(diào)用dct2dct2函數(shù)計(jì)算二維圖像的函數(shù)計(jì)算二維圖像的DCTDCT系數(shù)并系數(shù)并顯示結(jié)果。顯示結(jié)果。 由于由于離散余弦變換離散余弦變換DCTDCT會(huì)產(chǎn)生負(fù)系數(shù),為了顯會(huì)產(chǎn)生負(fù)系數(shù),為了顯示示離散余弦變換離散余弦變換DCTDCT的系數(shù)幅值大小,可以使的系數(shù)幅值大小,可以使用絕對(duì)值函數(shù)用絕對(duì)值函數(shù)abs(x)abs(x)。程序代碼如下:程序代碼如下:I=I=imread(lena.bmpimread(lena.bmp) ;) ;J=dct2(I); J=dct2(I); % % 計(jì)算二維圖像的計(jì)算二維圖像的DCTDCT系數(shù)系數(shù)subp

23、lot(1,2,1), imshow(uint8(I);subplot(1,2,1), imshow(uint8(I);subplot(1,2,2), imshow(uint8(abs(J); subplot(1,2,2), imshow(uint8(abs(J); % % 顯示二維圖像的顯示二維圖像的DCTDCT系數(shù)的大小系數(shù)的大小 執(zhí)行結(jié)果:執(zhí)行結(jié)果:( (a) a) lenalena原圖原圖 ( (b) b) 經(jīng)經(jīng)DCTDCT變換后的圖像變換后的圖像 (11) (11) 函數(shù)名函數(shù)名: : idct2 idct2 功能:計(jì)算逆功能:計(jì)算逆DCTDCT變換變換格式:格式:A= idct2(

24、B,M,N)A= idct2(B,M,N) B B表示要變換的矩陣,表示要變換的矩陣,M M和和N N是可選參數(shù),通過(guò)是可選參數(shù),通過(guò)補(bǔ)補(bǔ)0 0元素或截取多余元素,使元素或截取多余元素,使B B成為成為M MN N階矩陣,階矩陣,然后計(jì)算其二維然后計(jì)算其二維離散余弦逆變換離散余弦逆變換。A A表示表示B B經(jīng)過(guò)經(jīng)過(guò)二維二維離散余弦逆變換離散余弦逆變換后得到的后得到的系數(shù)系數(shù)矩陣。矩陣。例例10-6:10-6:計(jì)算并顯示圖像的計(jì)算并顯示圖像的離散余弦變換離散余弦變換DCTDCT及逆變換及逆變換IDCTIDCT。程序代碼如下:程序代碼如下:I=I=imread(lena.bmpimread(len

25、a.bmp) ; ) ; subplot(1,4,1), imshow(uint8(I);)% subplot(1,4,1), imshow(uint8(I);)% 顯示原始圖像顯示原始圖像J=dct2(I); %J=dct2(I); %圖像圖像DCTDCT變換變換K=idct2(J);subplot(1,4,2),imshow(uint8(K);%K=idct2(J);subplot(1,4,2),imshow(uint8(K);%使用逆變換復(fù)原圖像使用逆變換復(fù)原圖像J(abs(J)10)=0; %J(abs(J)10)=0; %將較小的系數(shù)設(shè)置為將較小的系數(shù)設(shè)置為0 0M=idct2(J)

26、;subplot(1,4,3),imshow(uint8(M);%M=idct2(J);subplot(1,4,3),imshow(uint8(M);%使用逆變換部分復(fù)原圖像使用逆變換部分復(fù)原圖像J(abs(J)100)=0; %J(abs(J)100)=0; %將較小的系數(shù)設(shè)置為將較小的系數(shù)設(shè)置為0 0N=idct2(J);subplot(1,4,4),imshow(uint8(N);%N=idct2(J);subplot(1,4,4),imshow(uint8(N);%使用逆變換部分復(fù)原圖像使用逆變換部分復(fù)原圖像原始圖像與原始圖像與DCTDCT和和IDCTIDCT變換后的圖像比較變換后的圖

27、像比較(a) Lena 原圖(b)經(jīng)過(guò)DCT和IDCT后的圖像(c) =100的重構(gòu)圖像(c) =10的重構(gòu)圖像(12) (12) 函數(shù)名函數(shù)名: :randrand rand rand函數(shù)共函數(shù)共8 8種,與圖像處理相關(guān)的主要有兩種。因此種,與圖像處理相關(guān)的主要有兩種。因此僅對(duì)這兩種做一個(gè)簡(jiǎn)要的介紹。僅對(duì)這兩種做一個(gè)簡(jiǎn)要的介紹。格式:格式:rand( state,J ) rand( state,J ) ;rand( N,M ) rand( N,M ) 功能功能: : rand( state,J ) 將隨機(jī)數(shù)生成器設(shè)置到第將隨機(jī)數(shù)生成器設(shè)置到第J個(gè)狀態(tài),其個(gè)狀態(tài),其值可以任意設(shè)定。不同的狀態(tài)值

28、可以任意設(shè)定。不同的狀態(tài)J 將生成不同的隨機(jī)矩將生成不同的隨機(jī)矩陣,而設(shè)定了相同的狀態(tài)陣,而設(shè)定了相同的狀態(tài)J,就可生成相同的隨機(jī)數(shù)矩就可生成相同的隨機(jī)數(shù)矩陣。陣。rand( N,M )產(chǎn)生元素值在(產(chǎn)生元素值在(0.0,1.0)內(nèi)的)內(nèi)的NM階均勻分布隨機(jī)矩陣。階均勻分布隨機(jī)矩陣。 通常通常rand( state,J )與與rand( N,M )聯(lián)合使用。聯(lián)合使用。 10.2 數(shù)字水印概述數(shù)字水印概述 定義:定義: 數(shù)字水印技術(shù)數(shù)字水印技術(shù)(Digital Watermarking)是通過(guò)一是通過(guò)一定的算法將一些標(biāo)志性信息直接嵌入到多媒體定的算法將一些標(biāo)志性信息直接嵌入到多媒體內(nèi)容當(dāng)中,但不

29、影響原內(nèi)容的價(jià)值和使用,并內(nèi)容當(dāng)中,但不影響原內(nèi)容的價(jià)值和使用,并且不能被人的感知系統(tǒng)覺(jué)察或注意到,只有通且不能被人的感知系統(tǒng)覺(jué)察或注意到,只有通過(guò)專(zhuān)用的檢測(cè)器或閱讀器才能提取。過(guò)專(zhuān)用的檢測(cè)器或閱讀器才能提取。 (a) a) 原始圖像原始圖像 ( (b) b) 水印圖像水印圖像 (c) c) 嵌入水印后的圖嵌入水印后的圖像像 圖像中嵌入數(shù)字水印圖像中嵌入數(shù)字水印數(shù)字水印常見(jiàn)的分類(lèi):數(shù)字水印常見(jiàn)的分類(lèi):1. 根據(jù)數(shù)字水印是否可見(jiàn)可以分為:可見(jiàn)水印根據(jù)數(shù)字水印是否可見(jiàn)可以分為:可見(jiàn)水印、不可見(jiàn)不可見(jiàn) 水印水印2. 根據(jù)數(shù)字水印的作用可以將數(shù)字水印分為:魯棒水印、根據(jù)數(shù)字水印的作用可以將數(shù)字水印分為

30、:魯棒水印、 脆弱水印脆弱水印、半脆弱水印半脆弱水印3. 根據(jù)水印實(shí)現(xiàn)的方法不同又可分為:時(shí)(空)域數(shù)字根據(jù)水印實(shí)現(xiàn)的方法不同又可分為:時(shí)(空)域數(shù)字水印水印、頻域數(shù)字水印頻域數(shù)字水印 數(shù)字水印系統(tǒng)的組成:嵌入和提?。z測(cè))數(shù)字水印系統(tǒng)的組成:嵌入和提?。z測(cè))水印生成水印生成算法(算法(G)數(shù)字水印數(shù)字水?。╓)原始載體數(shù)原始載體數(shù)據(jù)(據(jù)(I)水印嵌入水印嵌入算法(算法(E)加 入 水 印加 入 水 印后 的 數(shù) 據(jù)后 的 數(shù) 據(jù)( )wI私鑰私鑰/公鑰公鑰(K)數(shù)字水印嵌入的一般過(guò)程基本框架示意圖數(shù)字水印嵌入的一般過(guò)程基本框架示意圖 數(shù)字水印系統(tǒng)的組成:嵌入和提取(檢測(cè))數(shù)字水印系統(tǒng)的組成

31、:嵌入和提?。z測(cè))數(shù)字水印提取(檢測(cè))的一般過(guò)程基本框架示意圖數(shù)字水印提?。z測(cè))的一般過(guò)程基本框架示意圖10.3 基于基于DCT域的魯棒水印域的魯棒水印 10.3.110.3.1水印的嵌入水印的嵌入原始原始圖象圖象分塊分塊選擇方差最選擇方差最大的前大的前n塊塊D C T 變換變換DCT域中頻域中頻嵌入水印嵌入水印含水印圖象含水印圖象pn_sequence_zeroKDCT逆變換逆變換nx基于基于DCT的魯棒水印嵌入流程圖的魯棒水印嵌入流程圖具體步驟:具體步驟: 原始圖像的分塊DCT變換將原始圖像分割為互不覆蓋的88子塊,再對(duì)每個(gè)子 塊進(jìn)行DCT變換。基于紋理掩蔽特性的塊分類(lèi)將水印信號(hào)盡可能

32、嵌入到圖像中紋理較復(fù)雜的子塊。水印的產(chǎn)生和嵌入將二值水印圖像組成一維行向量,作為水印信息。采用折衷辦法,將水印信息嵌入到宿主圖像的中頻部分。 分塊DCT反變換。 基于基于DCT的魯棒水印嵌入效果圖:的魯棒水印嵌入效果圖: (a)原始圖像原始圖像 (b)水印圖像水印圖像 (c)嵌入水印后的圖像嵌入水印后的圖像10.3.2 水印的提取水印的提取基于基于DCTDCT的數(shù)字水印提取過(guò)程如下:的數(shù)字水印提取過(guò)程如下: 原始圖像和待測(cè)圖像在原始圖像和待測(cè)圖像在DCTDCT域進(jìn)行求差運(yùn)算,域進(jìn)行求差運(yùn)算,比較相關(guān)性,確定序列比較相關(guān)性,確定序列message_vectormessage_vector。 根據(jù)

33、圖像塊的方差值的大小,確定紋理塊,根據(jù)圖像塊的方差值的大小,確定紋理塊,從而確定水印曾經(jīng)的嵌入位置。從而確定水印曾經(jīng)的嵌入位置。根據(jù)序列根據(jù)序列message_vectormessage_vector以及紋理塊復(fù)雜度的以及紋理塊復(fù)雜度的次序形成一維水印序列。次序形成一維水印序列。 將水印序列重新組成二維水印恢復(fù)圖像。將水印序列重新組成二維水印恢復(fù)圖像。 基于基于DCT的魯棒水印提取效果圖:的魯棒水印提取效果圖: (a) 嵌入水印后的圖像嵌入水印后的圖像 (b) 提取的水印提取的水印 水印嵌入步驟:水印嵌入步驟: (1)將原始圖最低有效位將原始圖最低有效位( (LSB)LSB)清清0 0,并分為

34、互不,并分為互不覆蓋的覆蓋的8 88 8圖像塊圖像塊 (2)計(jì)算每個(gè)計(jì)算每個(gè)8 88 8塊分解(如基于塊分解(如基于LULU分解)后矩分解)后矩陣陣u u的跡,并將其作為嵌入的水印信息的跡,并將其作為嵌入的水印信息 (3)使用使用mean2( ) mean2( ) 函數(shù)計(jì)算每個(gè)函數(shù)計(jì)算每個(gè)8 88 8塊相鄰近塊相鄰近16161616圖像塊的均值,并嵌入到該圖像塊的均值,并嵌入到該8 88 8圖像塊圖像塊特定的特定的LSBLSB位。位。 10.4 基于空域的脆弱水印基于空域的脆弱水印 10.4.1水印的嵌入水印的嵌入iX( )iC s(4)再將步驟(再將步驟(2 2)中計(jì)算的水印信息)中計(jì)算的水

35、印信息 嵌入到由位嵌入到由位置矩陣置矩陣B B決定的決定的8 88 8圖像塊圖像塊 中的相應(yīng)中的相應(yīng)LSBLSB位,位,嵌入判別公式為:嵌入判別公式為: (5)(5)生成并顯示含水印的圖像生成并顯示含水印的圖像( )iC x( , )iX k j10.4.2水印的提取及篡改檢測(cè)水印的提取及篡改檢測(cè) 將待檢測(cè)圖像分為互不覆蓋的將待檢測(cè)圖像分為互不覆蓋的8 88 8圖像塊。圖像塊。 與水印嵌入過(guò)程類(lèi)似,計(jì)算出每個(gè)與水印嵌入過(guò)程類(lèi)似,計(jì)算出每個(gè)8 88 8塊塊 的水印信息。的水印信息。 將步驟將步驟中計(jì)算的水印信息與中計(jì)算的水印信息與LSB平面提取平面提取 的數(shù)值相比較,若相異則判斷發(fā)生篡改。的數(shù)值

36、相比較,若相異則判斷發(fā)生篡改。 基于空域的脆弱水印嵌入及檢測(cè)效果圖:基于空域的脆弱水印嵌入及檢測(cè)效果圖: (a) 原始原始Lena圖圖(b) 采用采用mean2算法嵌入算法嵌入水印后水印后 Lena圖圖 PSNR=51.151dB (c) 嵌入水印后圖像發(fā)嵌入水印后圖像發(fā)生篡改生篡改(d) 檢測(cè)篡改效果圖檢測(cè)篡改效果圖的的小波是繼傅立葉分析之后應(yīng)用到圖像和語(yǔ)音分小波是繼傅立葉分析之后應(yīng)用到圖像和語(yǔ)音分析等眾多領(lǐng)域的一種新的數(shù)學(xué)工具。析等眾多領(lǐng)域的一種新的數(shù)學(xué)工具。根據(jù)小波系數(shù)的計(jì)算方法,小波變換可分為:根據(jù)小波系數(shù)的計(jì)算方法,小波變換可分為:連續(xù)小波變換連續(xù)小波變換( (CWT)CWT)、 離

37、散小波變換(離散小波變換(DWTDWT)。)。MATLABMATLAB中提供了用于小波變換的函數(shù)。中提供了用于小波變換的函數(shù)。10.5 基于基于DWT域的脆弱水印域的脆弱水印 哈爾小波哈爾小波Haar小波是最早、最簡(jiǎn)單的緊支撐小波?,F(xiàn)以哈小波是最早、最簡(jiǎn)單的緊支撐小波。現(xiàn)以哈爾(爾(Haar)小波基函數(shù)為例,簡(jiǎn)述離散小波變換)小波基函數(shù)為例,簡(jiǎn)述離散小波變換的部分基本思想。的部分基本思想。 哈爾小波函數(shù)(哈爾小波函數(shù)(Haar wavelet function)定義如下:)定義如下: 1, 當(dāng)當(dāng)0 x1/2 (x) = -1, 當(dāng)當(dāng)1/2x1 0, 其他其他 例子見(jiàn)書(shū)例子見(jiàn)書(shū)284頁(yè)頁(yè)例:例:

38、調(diào)用調(diào)用MatlabMatlab中中dwt2dwt2函數(shù)計(jì)算其函數(shù)計(jì)算其DWTDWT并顯示結(jié)果并顯示結(jié)果。程序代碼如下:程序代碼如下:Z=Z=imread(lena.bmpimread(lena.bmp);); ca,ch,cv,cdca,ch,cv,cd=dwt2(Z,haar);=dwt2(Z,haar);figurefiguresubplot(2,2,1);image(ca);colormap(map);title(subplot(2,2,1);image(ca);colormap(map);title(近似近似A1);A1);subplot(2,2,2); subplot(2,2,2); image(ch);colormap(map);titleimage(ch);colormap(map);title(水平細(xì)節(jié)水平細(xì)節(jié)H1);H

溫馨提示

  • 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)論