用matlab數(shù)字圖像處理四個實驗_第1頁
用matlab數(shù)字圖像處理四個實驗_第2頁
用matlab數(shù)字圖像處理四個實驗_第3頁
用matlab數(shù)字圖像處理四個實驗_第4頁
用matlab數(shù)字圖像處理四個實驗_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)字圖像處理實驗指導書目錄實驗一 MATLAB數(shù)字圖像處理初步實驗二 圖像的代數(shù)運算實驗三 圖像增強-空間濾波實驗四 圖像分割1實驗一 MATLAB數(shù)字圖像處理初步一、實驗目的與要求1熟悉及掌握在MATLAB中能夠處理哪些格式圖像。2熟練掌握在MATLAB中如何讀取圖像。3掌握如何利用MATLAB來獲取圖像的大小、顏色、高度、寬度等等相關(guān)信息。4掌握如何在MATLAB中按照指定要求存儲一幅圖像的方法。5圖像間如何轉(zhuǎn)化。二、實驗原理及知識點1、數(shù)字圖像的表示和類別一幅圖像可以被定義為一個二維函數(shù)f(x,y),其中x和y是空間(平面)坐標,f 在任何坐標處(x,y)處的振幅稱為圖像在該點的亮度?;?/p>

2、度是用來表示黑白圖像亮度的一個術(shù)語,而彩色圖像是由單個二維圖像組合形成的。例如,在RGB彩色系統(tǒng)中,一幅彩色圖像是由三幅獨立的分量圖像(紅、綠、藍)組成的。因此,許多為黑白圖像處理開發(fā)的技術(shù)適用于彩色圖像處理,方法是分別處理三副獨立的分量圖像即可。圖像關(guān)于x和y坐標以及振幅連續(xù)。要將這樣的一幅圖像轉(zhuǎn)化為數(shù)字形式,就要求數(shù)字化坐標和振幅。將坐標值數(shù)字化成為取樣;將振幅數(shù)字化成為量化。采樣和量化的過程如圖1所示。因此,當f的x、y分量和振幅都是有限且離散的量時,稱該圖像為數(shù)字圖像。作為MATLAB基本數(shù)據(jù)類型的數(shù)值數(shù)組本身十分適于表達圖像,矩陣的元素和圖像的像素之間有著十分自然的對應關(guān)系。圖1 圖

3、像的采樣和量化根據(jù)圖像數(shù)據(jù)矩陣解釋方法的不同,MATLAB把其處理為4類:Ø 亮度圖像(Intensity images)Ø 二值圖像(Binary images)Ø 索引圖像(Indexed images)Ø RGB圖像(RGB images)(1) 亮度圖像一幅亮度圖像是一個數(shù)據(jù)矩陣,其歸一化的取值表示亮度。若亮度圖像的像素都是uint8類或uint16類,則它們的整數(shù)值范圍分別是0,255和0,65536。若圖像是double類,則像素取值就是浮點數(shù)。規(guī)定雙精度型歸一化亮度圖像的取值范圍是0,1 (2) 二值圖像一幅二值圖像是一個取值只有0和1的邏

4、輯數(shù)組。而一幅取值只包含0和1的uint8類數(shù)組,在MATLAB中并不認為是二值圖像。使用logical函數(shù)可以把數(shù)值數(shù)組轉(zhuǎn)化為二值數(shù)組或邏輯數(shù)組。創(chuàng)建一個邏輯圖像,其語法為: B=logical(A)其中,B是由0和1構(gòu)成的數(shù)值數(shù)組。要測試一個數(shù)組是否為邏輯數(shù)組,可以使用函數(shù): islogical(c)若C是邏輯數(shù)組,則該函數(shù)返回1;否則,返回0。(3) 索引圖像索引顏色通常也稱為映射顏色,在這種模式下,顏色都是預先定義的,并且可供選用的一組顏色也很有限,索引顏色的圖像最多只能顯示256種顏色。一幅索引顏色圖像在圖像文件里定義,當打開該文件時,構(gòu)成該圖像具體顏色的索引值就被讀入程序里,然后根

5、據(jù)索引值找到最終的顏色。 (4) RGB圖像一幅RGB圖像就是彩色像素的一個M×N×3數(shù)組,其中每一個彩色相似點都是在特定空間位置的彩色圖像相對應的紅、綠、藍三個分量。按照慣例,形成一幅RGB彩色圖像的三個圖像常稱為紅、綠或藍分量圖像。令fR,fG和fB分別代表三種RGB分量圖像。一幅RGB圖像就利用cat(級聯(lián))操作將這些分量圖像組合成彩色圖像: rgb_image=cat(3,fR,fG,fB)在操作中,圖像按順序放置。 2、數(shù)據(jù)類和圖像類型間的轉(zhuǎn)化表1中列出了MATLAB和IPT為表示像素所支持的各種數(shù)據(jù)類。表中的前8項稱為數(shù)值數(shù)據(jù)類,第9項稱為字符類,最后一項稱為邏

6、輯數(shù)據(jù)類。工具箱中提供了執(zhí)行必要縮放的函數(shù)(見表2)。以在圖像類和類型間進行轉(zhuǎn)化。表1-1 MATLAB和IPT支持數(shù)據(jù)類型名稱描述double雙精度浮點數(shù),范圍為uint8無符號8比特整數(shù),范圍為0 255uint16無符號16比特整數(shù),范圍為0 65536uint32無符號32比特整數(shù),范圍為0 4294967295int8有符號8比特整數(shù),范圍為-128 127int16有符號16比特整數(shù),范圍為-32768 32767int32有符號32比特整數(shù),范圍為-2147483648 2147483647single單精度浮點數(shù),范圍為char字符logical值為0或1表1-2 格式轉(zhuǎn)換函數(shù)

7、名稱將輸入轉(zhuǎn)化為有效的輸入圖像數(shù)據(jù)類im2uint8uint8logical,uint8,uint16和doulbeim2uint16uint16logical,uint8,uint16和doulbemat2graydouble,范圍為0 1doubleim2doubledoublelogical,uint8,uint16和doulbeim2bwlogicaluint8,uint16和double 下面給出讀取、壓縮、顯示一幅圖像的程序(%后面的語句屬于標記語句,編程時可不用輸入)I=imread(原圖像名.tif); % 讀入原圖像,tif格式whos I % 顯示圖像I的基本信息imsho

8、w(I) % 顯示圖像% 這種格式知識用于jpg格式,壓縮存儲圖像,q是0-100之間的整數(shù)imfinfo lily.tif imwrite(I,'flower.jpg','quality',30); imwrite(I,'flower.bmp'); % 以位圖(BMP)的格式存儲圖像% 顯示多幅圖像,其中n為圖形窗口的號數(shù)figure(1 2 3), imshow('tif jpg bmp'); gg=im2bw(I,0.6'); % 將圖像轉(zhuǎn)為二值圖像figure, imshow(gg) % 顯示二值圖像三、實驗內(nèi)容及

9、步驟1利用imread( )函數(shù)讀取一幅圖像,假設其名為flower.tif,存入一個數(shù)組中;2利用whos 命令提取該讀入圖像flower.tif的基本信息;3利用imshow()函數(shù)來顯示這幅圖像;4利用imfinfo函數(shù)來獲取圖像文件的壓縮,顏色等等其他的詳細信息;5利用imwrite()函數(shù)來壓縮這幅圖象,將其保存為一幅壓縮了像素的jpg文件,設為flower.jpg;語法:imwrite(原圖像,新圖像,quality,q), q取0-100。6同樣利用imwrite()函數(shù)將最初讀入的tif圖象另存為一幅bmp圖像,設為flower.bmp。7用imread()讀入圖像:Lenna

10、.jpg 和camema.jpg;8用imfinfo()獲取圖像Lenna.jpg和camema.jpg 的大??;9用figure,imshow()分別將Lenna.jpg和camema.jpg顯示出來,觀察兩幅圖像的質(zhì)量。10用im2bw將一幅灰度圖像轉(zhuǎn)化為二值圖像,并且用imshow顯示出來觀察圖像的特征。11將每一步的函數(shù)執(zhí)行語句拷貝下來,寫入實驗報告,并且將得到第3、9、10步得到的圖像效果拷貝下來。四、考核要點1、熟悉在MATLAB中如何讀入圖像、如何獲取圖像文件的相關(guān)信息、如何顯示圖像及保存圖像等,熟悉相關(guān)的處理函數(shù)。2、明確不同的圖像文件格式,由于其具體的圖像存儲方式不同,所以文

11、件的大小不同,因此當對同一幅圖像來說,有相同的文件大小時,質(zhì)量不同。五、實驗儀器與軟件(1) PC計算機(2) MatLab軟件/語言包括圖像處理工具箱(Image Processing Toolbox) (3) 實驗所需要的圖片 六、實驗報告要求描述實驗的基本步驟,用數(shù)據(jù)和圖片給出各個步驟中取得的實驗結(jié)果和源代碼,并進行必要的討論,必須包括原始圖像及其計算/處理后的圖像。七、思考題(1) 簡述MatLab軟件的特點。(2) MatLab軟件可以支持哪些圖像文件格式? (3) 說明函數(shù)imread 的用途格式以及各種格式所得到圖像的性質(zhì)。(4) 為什么用I = imread(lena.bmp)

12、 命令得到的圖像I 不可以進行算術(shù)運算?八、實驗圖像 Fig.1 flower.tif Fig.2 elephant.jpg Fig.3 Lenna.jpg Fig.4 camema.jpg 第二 圖像基本運算一、 實驗目的1了解圖像的算術(shù)運算在數(shù)字圖像處理中的初步應用。2體會圖像算術(shù)運算處理的過程和處理前后圖像的變化。二、 實驗原理圖像的代數(shù)運算是圖像的標準算術(shù)操作的實現(xiàn)方法,是兩幅輸入圖像之間進行的點對點的加、減、乘、除運算后得到輸出圖像的過程。如果輸入圖像為A(x,y)和B(x,y),輸出圖像為C(x,y),則圖像的代數(shù)運算有如下四種形式: C(x,y) = A(x,y) + B(x,y

13、) C(x,y) = A(x,y) - B(x,y) C(x,y) = A(x,y) * B(x,y) C(x,y) = A(x,y) / B(x,y)圖像的代數(shù)運算在圖像處理中有著廣泛的應用,它除了可以實現(xiàn)自身所需的算術(shù)操作,還能為許多復雜的圖像處理提供準備。例如,圖像減法就可以用來檢測同一場景或物體生產(chǎn)的兩幅或多幅圖像的誤差。使用MATLAB的基本算術(shù)符(+、-、*、/ 等)可以執(zhí)行圖像的算術(shù)操作,但是在此之前必須將圖像轉(zhuǎn)換為適合進行基本操作的雙精度類型。為了更方便地對圖像進行操作,MATLAB圖像處理工具箱包含了一個能夠?qū)崿F(xiàn)所有非稀疏數(shù)值數(shù)據(jù)的算術(shù)操作的函數(shù)集合。下表列舉了所有圖像處理工

14、具箱中的圖像代數(shù)運算函數(shù)。表2-1 圖像處理工具箱中的代數(shù)運算函數(shù)函數(shù)名功能描述Imabsdiff兩幅圖像的絕對差值Imadd兩幅圖像的加法Imcomplement補足一幅圖像Imdivide兩幅圖像的除法Imlincomb計算兩幅圖像的線性組合Immultiply兩幅圖像的乘法imsubtract兩幅圖像的減法使用圖像處理工具箱中的圖像代數(shù)運算函數(shù)無需再進行數(shù)據(jù)類型間的轉(zhuǎn)換,這些函數(shù)能夠接受uint8和uint16數(shù)據(jù),并返回相同格式的圖像結(jié)果。雖然在函數(shù)執(zhí)行過程中元素是以雙精度進行計算的,但是MATLAB工作平臺并不會將圖像轉(zhuǎn)換為雙精度類型。代數(shù)運算的結(jié)果很容易超出數(shù)據(jù)類型允許的范圍。例如

15、,uint8數(shù)據(jù)能夠存儲的最大數(shù)值是255,各種代數(shù)運算尤其是乘法運算的結(jié)果很容易超過這個數(shù)值,有時代數(shù)操作(主要是除法運算)也會產(chǎn)生不能用整數(shù)描述的分數(shù)結(jié)果。圖像的代數(shù)運算函數(shù)使用以下截取規(guī)則使運算結(jié)果符合數(shù)據(jù)范圍的要求:超出數(shù)據(jù)范圍的整型數(shù)據(jù)將被截取為數(shù)據(jù)范圍的極值,分數(shù)結(jié)果將被四舍五入。例如,如果數(shù)據(jù)類型是uint8,那么大于255的結(jié)果(包括無窮大inf)將被設置為255。注意:無論進行哪一種代數(shù)運算都要保證兩幅輸入圖像的大小相等,且類型相同。三、 實驗步驟1圖像的加法運算圖像相加一般用于對同一場景的多幅圖像求平均效果,以便有效地降低具有疊加性質(zhì)的隨機噪聲。直接采集的圖像品質(zhì)一般都較好

16、,不需要進行加法運算處理,但是對于那些經(jīng)過長距離模擬通訊方式傳送的圖像(如衛(wèi)星圖像),這種處理是必不可少的。在MATLAB中,如果要進行兩幅圖像的加法,或者給一幅圖像加上一個常數(shù),可以調(diào)用imadd函數(shù)來實現(xiàn)。imadd函數(shù)將某一幅輸入圖像的每一個像素值與另一幅圖像相應的像素值相加,返回相應的像素值之和作為輸出圖像。imadd函數(shù)的調(diào)用格式如下:Z = imadd(X,Y)其中,X和Y表示需要相加的兩幅圖像,返回值Z表示得到的加法操作結(jié)果。圖像加法在圖像處理中應用非常廣泛。例如,以下代碼使用加法操作將圖2.1中的(a)、(b)兩幅圖像疊加在一起:I = imread(rice.tif);J =

17、 imread(cameraman.tif);K = imadd(I,J);imshow(K);疊加結(jié)果如圖2.2所示。 圖2.1 待疊加的兩幅圖像 圖2.2 疊加后的圖像效果給圖像的每一個像素加上一個常數(shù)可以使圖像的亮度增加。例如,以下代碼將增加圖3(a)所示的RGB圖像的亮度,加亮后的結(jié)果如圖3(b)所示。RGB = imread(flower.tif);RGB2 = imadd(RGB,50);subplot(1,2,1);imshow(RGB);subplot(1,2,2);imshow(RGB2); 加50 減50原圖 加50 減50圖2.3 亮度增加與變暗兩幅圖像的像素值相加時產(chǎn)生

18、的結(jié)果很可能超過圖像數(shù)據(jù)類型所支持的最大值,尤其對于uint8類型的圖像,溢出情況最為常見。當數(shù)據(jù)值發(fā)生溢出時,imadd函數(shù)將數(shù)據(jù)截取為數(shù)據(jù)類型所支持的最大值,這種截取效果稱之為飽和。為了避免出現(xiàn)飽和現(xiàn)象,在進行加法計算前最好將圖像轉(zhuǎn)換為一種數(shù)據(jù)范圍較寬的數(shù)據(jù)類型。例如,在加法操作前將uint8圖像轉(zhuǎn)換為uint16類型。2圖像的減法運算圖像減法也稱為差分方法,是一種常用于檢測圖像變化及運動物體的圖像處理方法。圖像減法可以作為許多圖像處理工作的準備步驟。例如,可以使用圖像減法來檢測一系列相同場景圖像的差異。圖像減法與閾值化處理的綜合使用往往是建立機器視覺系統(tǒng)最有效的方法之一。在利用圖像減法處

19、理圖像時往往需要考慮背景的更新機制,盡量補償由于天氣、光照等因素對圖像顯示效果造成的影響。在MATLAB中,使用imsubtract函數(shù)可以將一幅圖像從另一幅圖像中減去,或者從一幅圖像中減去一個常數(shù)。imsubtract函數(shù)將一幅輸入圖像的像素值從另一幅輸入圖像相應的像素值中減去,再將這個結(jié)果作為輸出圖像相應的像素值。imsubtract函數(shù)的調(diào)用格式如下:Z = imsubtract(X,Y);其中,Z是X-Y操作的結(jié)果。以下代碼首先根據(jù)原始圖像(如圖2.4(a)所示)生成其背景亮度圖像,然后再從原始圖像中將背景亮度圖像減去,從而生成圖2.4(b)所示的圖像:rice = imread(ri

20、ce.tif);background = imopen(rice, strel(disk,15);rice2 = imsubtract(rice, background);subplot(1,2,1);imshow(rice);subplot(1,2,2);imshow(rice2); 圖2.4 原始圖像、減去背景圖像如果希望從圖像數(shù)據(jù)I的每一個像素減去一個常數(shù),可以將上述調(diào)用格式中的Y替換為一個指定的常數(shù)值,例如:Z = imsubtract(I,50);減法操作有時會導致某些像素值變?yōu)橐粋€負數(shù),對于uint8或uint16類型的數(shù)據(jù),如果發(fā)生這種情況,那么imsubtract函數(shù)自動將這些

21、負數(shù)截取為0。為了避免差值產(chǎn)生負值,同時避免像素值運算結(jié)果之間產(chǎn)生差異,可以調(diào)用函數(shù)imabsdiff。imabsdiff將計算兩幅圖像相應像素差值的絕對值,因而返回結(jié)果不會產(chǎn)生負數(shù)。該函數(shù)的調(diào)用格式與imsubtract函數(shù)類似。3. 圖像的乘法運算兩幅圖像進行乘法運算可以實現(xiàn)掩模操作,即屏蔽掉圖像的某些部分。一幅圖像乘以一個常數(shù)通常被稱為縮放,這是一種常見的圖像處理操作。如果使用的縮放因子大于1,那么將增強圖像的亮度,如果因子小于1則會使圖像變暗??s放通常將產(chǎn)生比簡單添加像素偏移量自然得多的明暗效果,這是因為這種操作能夠更好地維持圖像的相關(guān)對比度。此外,由于時域的卷積或相關(guān)運算與頻域的乘積

22、運算對應,因此乘法運算有時也被作為一種技巧來實現(xiàn)卷積或相關(guān)處理。在MATLAB中,使用immultiply函數(shù)實現(xiàn)兩幅圖像的乘法。immultiply函數(shù)將兩幅圖像相應的像素值進行元素對元素的乘法操作(MATLAB點乘),并將乘法的運算結(jié)果作為輸出圖形相應的像素值。immulitply函數(shù)的調(diào)用格式如下:Z = immulitply(X,Y)其中,Z=X*Y。例如,以下代碼將使用給定的縮放因子對圖2.5(a)所示的圖像進行縮放,從而得到如圖2.5(b)所示的較為明亮的圖像:I = imread(moon.tif);J = immultiply(I,1.2);subplot(1,2,1);ims

23、how(I);subplot(1,2,2);imshow(J); 圖2.5 原圖和乘以因子1.5 的圖像uint8圖像的乘法操作一般都會發(fā)生溢出現(xiàn)象。Immultiply函數(shù)將溢出的數(shù)據(jù)截取為數(shù)據(jù)類型的最大值。為了避免產(chǎn)生溢出現(xiàn)象,可以在執(zhí)行乘法操作之前將uint8圖像轉(zhuǎn)換為一種數(shù)據(jù)范圍較大的圖像類型,例如uint16。4圖像的除法運算除法運算可用于校正成像設備的非線性影響,這在特殊形態(tài)的圖像(如斷層掃描等醫(yī)學圖像)處理中常常用到。圖像除法也可以用來檢測兩幅圖像間的區(qū)別,但是除法操作給出的是相應像素值的變化比率,而不是每個像素的絕對差異,因而圖像除法也稱為比率變換。在MATLAB中使用imdi

24、vide函數(shù)進行兩幅圖像的除法。imdivide函數(shù)對兩幅輸入圖像的所有相應像素執(zhí)行元素對元素的除法操作(點除),并將得到的結(jié)果作為輸出圖像的相應像素值。imdivide函數(shù)的調(diào)用格式如下:Z = imdivide(X,Y)其中,Z=X/Y。例如,以下代碼將圖4所示的兩幅圖像進行除法運算,請將這個結(jié)果和減法操作的結(jié)果相比較,對比它們之間的不同之處:Rice = imread(rice.tif);I = double(rice);J= I * 0.43 + 90;Rice2 = uint8(J);Ip = imdivide(rice, rice2);Imshow(Ip, );除法操作的結(jié)果如圖2

25、.6所示。 圖2.6 原圖和減背景后的圖像相除的圖像效果5圖像的四則代數(shù)運算可以綜合使用多種圖像代數(shù)運算函數(shù)來完成一系列的操作。例如,使用以下語句計算兩幅圖像的平均值:I = imread(rice.tif);I2 = imread(cameraman.tif);K = imdivide(imadd(I,I2),2);建議最好不要用這種方式進行圖像操作,這是因為,對于uint8或uint16數(shù)據(jù),每一個算術(shù)函數(shù)在將其輸出結(jié)果傳遞給下一項操作之前都要進行數(shù)據(jù)截取,這個截取過程將會大大減少輸出圖像的信息量。執(zhí)行圖像四則運算操作較好的一個辦法就是使用函數(shù)imlincomb。函數(shù)imlincomb按照

26、雙精度執(zhí)行所有代數(shù)運算操作,而且僅對最好的輸出結(jié)果進行截取,該函數(shù)的調(diào)用格式如下:Z = imlincomb(A,X,B,Y,C);其中,Z=A*X+B*Y+C。MATLAB會自動根據(jù)輸入?yún)?shù)的個數(shù)判斷需要進行的運算。例如,以下語句將計算Z=A*X+C:Z = imlincomb(A,X,C)而以下語句將計算Z=A*X+B*Y:Z = imlincomb(A,X,B,Y,)四、 實驗報告要求1 描述實驗的基本步驟,用數(shù)據(jù)和圖片給出各個步驟中取得的實驗結(jié)果并進行必要的討論。2 必須包括原始圖像及其計算處理后的圖像以及相應的解釋。五、 思考題由圖像算術(shù)運算的運算結(jié)果,思考圖像減法運算在什么場合上發(fā)

27、揮優(yōu)勢?實驗三 圖像增強空域濾波一、 實驗目的 進一步了解MatLab軟件/語言,學會使用MatLab對圖像作濾波處理,使學生有機會掌握濾波算法,體會濾波效果。了解幾種不同濾波方式的使用和使用的場合,培養(yǎng)處理實際圖像的能力,并為課堂教學提供配套的實踐機會。 二、實驗要求 (1)學生應當完成對于給定圖像+噪聲,使用平均濾波器、中值濾波器對不同強度的高斯噪聲和椒鹽噪聲,進行濾波處理;能夠正確地評價處理的結(jié)果;能夠從理論上作出合理的解釋。(2)利用MATLAB軟件實現(xiàn)空域濾波的程序:I=imread('electric.tif');J = imnoise(I,'gauss&#

28、39;,0.02); %添加高斯噪聲J = imnoise(I,'salt & pepper',0.02); (注意空格) %添加椒鹽噪聲 ave1=fspecial('average',3); %產(chǎn)生3×3的均值模版ave2=fspecial('average',5); %產(chǎn)生5×5的均值模版K = filter2(ave1,J)/255; %均值濾波3×3L = filter2(ave2,J)/255; %均值濾波5×5M = medfilt2(J,3 3); %中值濾波3×3模板N

29、= medfilt2(J,4 4); %中值濾波4×4模板imshow(I);figure,imshow(J);figure,imshow(K);figure,imshow(L);figure,imshow(M);figure,imshow(N);三、實驗設備與軟件 (1) IBM-PC計算機系統(tǒng) (2) MatLab軟件/語言包括圖像處理工具箱(Image Processing Toolbox) (3) 實驗所需要的圖片 四、實驗內(nèi)容與步驟 a) 調(diào)入并顯示原始圖像Sample2-1.jpg 。b) 利用imnoise 命令在圖像Sample2-1.jpg 上加入高斯(gaussi

30、an) 噪聲 c)利用預定義函數(shù)fspecial 命令產(chǎn)生平均(average)濾波器 d)分別采用3x3和5x5的模板,分別用平均濾波器以及中值濾波器,對加入噪聲的圖像進行處理并觀察不同噪聲水平下,上述濾波器處理的結(jié)果; e)選擇不同大小的模板,對加入某一固定噪聲水平噪聲的圖像進行處理,觀察上述濾波器處理的結(jié)果。f)利用imnoise 命令在圖像Sample2-1.jpg 上加入椒鹽噪聲(salt & pepper)g)重復c) e)的步驟h)輸出全部結(jié)果并進行討論。五、思考題/問答題 (1) 簡述高斯噪聲和椒鹽噪聲的特點。(2) 結(jié)合實驗內(nèi)容,定性評價平均濾波器/中值濾波器對高斯噪

31、聲和椒鹽噪聲的去噪效果?(3) 結(jié)合實驗內(nèi)容,定性評價濾波窗口對去噪效果的影響? 六、實驗報告要求 描述實驗的基本步驟,用數(shù)據(jù)和圖片給出各個步驟中取得的實驗結(jié)果,并進行必要的討論,必須包括原始圖像及其計算/處理后的圖像。七、實驗圖像 electric.tif(原始圖像) 實驗二 圖像的代數(shù)運算一、 實驗目的1了解圖像的算術(shù)運算在數(shù)字圖像處理中的初步應用。2體會圖像算術(shù)運算處理的過程和處理前后圖像的變化。二、 實驗原理圖像的代數(shù)運算是圖像的標準算術(shù)操作的實現(xiàn)方法,是兩幅輸入圖像之間進行的點對點的加、減、乘、除運算后得到輸出圖像的過程。如果輸入圖像為A(x,y)和B(x,y),輸出圖像為C(x,y

32、),則圖像的代數(shù)運算有如下四種形式: C(x,y) = A(x,y) + B(x,y) C(x,y) = A(x,y) - B(x,y) C(x,y) = A(x,y) * B(x,y) C(x,y) = A(x,y) / B(x,y)圖像的代數(shù)運算在圖像處理中有著廣泛的應用,它除了可以實現(xiàn)自身所需的算術(shù)操作,還能為許多復雜的圖像處理提供準備。例如,圖像減法就可以用來檢測同一場景或物體生產(chǎn)的兩幅或多幅圖像的誤差。使用MATLAB的基本算術(shù)符(+、-、*、/ 等)可以執(zhí)行圖像的算術(shù)操作,但是在此之前必須將圖像轉(zhuǎn)換為適合進行基本操作的雙精度類型。為了更方便地對圖像進行操作,MATLAB圖像處理工具

33、箱包含了一個能夠?qū)崿F(xiàn)所有非稀疏數(shù)值數(shù)據(jù)的算術(shù)操作的函數(shù)集合。下表列舉了所有圖像處理工具箱中的圖像代數(shù)運算函數(shù)。表2-1 圖像處理工具箱中的代數(shù)運算函數(shù)函數(shù)名功能描述Imabsdiff兩幅圖像的絕對差值Imadd兩幅圖像的加法Imcomplement補足一幅圖像Imdivide兩幅圖像的除法Imlincomb計算兩幅圖像的線性組合Immultiply兩幅圖像的乘法imsubtract兩幅圖像的減法使用圖像處理工具箱中的圖像代數(shù)運算函數(shù)無需再進行數(shù)據(jù)類型間的轉(zhuǎn)換,這些函數(shù)能夠接受uint8和uint16數(shù)據(jù),并返回相同格式的圖像結(jié)果。雖然在函數(shù)執(zhí)行過程中元素是以雙精度進行計算的,但是MATLAB工

34、作平臺并不會將圖像轉(zhuǎn)換為雙精度類型。代數(shù)運算的結(jié)果很容易超出數(shù)據(jù)類型允許的范圍。例如,uint8數(shù)據(jù)能夠存儲的最大數(shù)值是255,各種代數(shù)運算尤其是乘法運算的結(jié)果很容易超過這個數(shù)值,有時代數(shù)操作(主要是除法運算)也會產(chǎn)生不能用整數(shù)描述的分數(shù)結(jié)果。圖像的代數(shù)運算函數(shù)使用以下截取規(guī)則使運算結(jié)果符合數(shù)據(jù)范圍的要求:超出數(shù)據(jù)范圍的整型數(shù)據(jù)將被截取為數(shù)據(jù)范圍的極值,分數(shù)結(jié)果將被四舍五入。例如,如果數(shù)據(jù)類型是uint8,那么大于255的結(jié)果(包括無窮大inf)將被設置為255。注意:無論進行哪一種代數(shù)運算都要保證兩幅輸入圖像的大小相等,且類型相同。三、 實驗步驟1圖像的加法運算圖像相加一般用于對同一場景的多

35、幅圖像求平均效果,以便有效地降低具有疊加性質(zhì)的隨機噪聲。直接采集的圖像品質(zhì)一般都較好,不需要進行加法運算處理,但是對于那些經(jīng)過長距離模擬通訊方式傳送的圖像(如衛(wèi)星圖像),這種處理是必不可少的。在MATLAB中,如果要進行兩幅圖像的加法,或者給一幅圖像加上一個常數(shù),可以調(diào)用imadd函數(shù)來實現(xiàn)。imadd函數(shù)將某一幅輸入圖像的每一個像素值與另一幅圖像相應的像素值相加,返回相應的像素值之和作為輸出圖像。imadd函數(shù)的調(diào)用格式如下:Z = imadd(X,Y)其中,X和Y表示需要相加的兩幅圖像,返回值Z表示得到的加法操作結(jié)果。圖像加法在圖像處理中應用非常廣泛。例如,以下代碼使用加法操作將圖2.1中

36、的(a)、(b)兩幅圖像疊加在一起:I = imread(rice.tif);J = imread(cameraman.tif);K = imadd(I,J);imshow(K);疊加結(jié)果如圖2.2所示。 圖2.1 待疊加的兩幅圖像 圖2.2 疊加后的圖像效果給圖像的每一個像素加上一個常數(shù)可以使圖像的亮度增加。例如,以下代碼將增加圖3(a)所示的RGB圖像的亮度,加亮后的結(jié)果如圖3(b)所示。RGB = imread(flower.tif);RGB2 = imadd(RGB,50);subplot(1,2,1);imshow(RGB);subplot(1,2,2);imshow(RGB2);

37、加50 減50原圖 加50 減50圖2.3 亮度增加與變暗兩幅圖像的像素值相加時產(chǎn)生的結(jié)果很可能超過圖像數(shù)據(jù)類型所支持的最大值,尤其對于uint8類型的圖像,溢出情況最為常見。當數(shù)據(jù)值發(fā)生溢出時,imadd函數(shù)將數(shù)據(jù)截取為數(shù)據(jù)類型所支持的最大值,這種截取效果稱之為飽和。為了避免出現(xiàn)飽和現(xiàn)象,在進行加法計算前最好將圖像轉(zhuǎn)換為一種數(shù)據(jù)范圍較寬的數(shù)據(jù)類型。例如,在加法操作前將uint8圖像轉(zhuǎn)換為uint16類型。2圖像的減法運算圖像減法也稱為差分方法,是一種常用于檢測圖像變化及運動物體的圖像處理方法。圖像減法可以作為許多圖像處理工作的準備步驟。例如,可以使用圖像減法來檢測一系列相同場景圖像的差異。圖

38、像減法與閾值化處理的綜合使用往往是建立機器視覺系統(tǒng)最有效的方法之一。在利用圖像減法處理圖像時往往需要考慮背景的更新機制,盡量補償由于天氣、光照等因素對圖像顯示效果造成的影響。在MATLAB中,使用imsubtract函數(shù)可以將一幅圖像從另一幅圖像中減去,或者從一幅圖像中減去一個常數(shù)。imsubtract函數(shù)將一幅輸入圖像的像素值從另一幅輸入圖像相應的像素值中減去,再將這個結(jié)果作為輸出圖像相應的像素值。imsubtract函數(shù)的調(diào)用格式如下:Z = imsubtract(X,Y);其中,Z是X-Y操作的結(jié)果。以下代碼首先根據(jù)原始圖像(如圖2.4(a)所示)生成其背景亮度圖像,然后再從原始圖像中將

39、背景亮度圖像減去,從而生成圖2.4(b)所示的圖像:rice = imread(rice.tif);background = (rice, strel(disk,15);rice2 = imsubtract(rice, background);subplot(1,2,1);imshow(rice);subplot(1,2,2);imshow(rice2); 圖2.4 原始圖像、減去背景圖像如果希望從圖像數(shù)據(jù)I的每一個像素減去一個常數(shù),可以將上述調(diào)用格式中的Y替換為一個指定的常數(shù)值,例如:Z = imsubtract(I,50);減法操作有時會導致某些像素值變?yōu)橐粋€負數(shù),對于uint8或uint

40、16類型的數(shù)據(jù),如果發(fā)生這種情況,那么imsubtract函數(shù)自動將這些負數(shù)截取為0。為了避免差值產(chǎn)生負值,同時避免像素值運算結(jié)果之間產(chǎn)生差異,可以調(diào)用函數(shù)imabsdiff。imabsdiff將計算兩幅圖像相應像素差值的絕對值,因而返回結(jié)果不會產(chǎn)生負數(shù)。該函數(shù)的調(diào)用格式與imsubtract函數(shù)類似。3. 圖像的乘法運算兩幅圖像進行乘法運算可以實現(xiàn)掩模操作,即屏蔽掉圖像的某些部分。一幅圖像乘以一個常數(shù)通常被稱為縮放,這是一種常見的圖像處理操作。如果使用的縮放因子大于1,那么將增強圖像的亮度,如果因子小于1則會使圖像變暗。縮放通常將產(chǎn)生比簡單添加像素偏移量自然得多的明暗效果,這是因為這種操作能

41、夠更好地維持圖像的相關(guān)對比度。此外,由于時域的卷積或相關(guān)運算與頻域的乘積運算對應,因此乘法運算有時也被作為一種技巧來實現(xiàn)卷積或相關(guān)處理。在MATLAB中,使用immultiply函數(shù)實現(xiàn)兩幅圖像的乘法。immultiply函數(shù)將兩幅圖像相應的像素值進行元素對元素的乘法操作(MATLAB點乘),并將乘法的運算結(jié)果作為輸出圖形相應的像素值。immulitply函數(shù)的調(diào)用格式如下:Z = immulitply(X,Y)其中,Z=X*Y。例如,以下代碼將使用給定的縮放因子對圖2.5(a)所示的圖像進行縮放,從而得到如圖2.5(b)所示的較為明亮的圖像:I = imread(moon.tif);J =

42、immultiply(I,1.2);subplot(1,2,1);imshow(I);subplot(1,2,2);imshow(J); 圖2.5 原圖和乘以因子1.5 的圖像uint8圖像的乘法操作一般都會發(fā)生溢出現(xiàn)象。Immultiply函數(shù)將溢出的數(shù)據(jù)截取為數(shù)據(jù)類型的最大值。為了避免產(chǎn)生溢出現(xiàn)象,可以在執(zhí)行乘法操作之前將uint8圖像轉(zhuǎn)換為一種數(shù)據(jù)范圍較大的圖像類型,例如uint16。4圖像的除法運算除法運算可用于校正成像設備的非線性影響,這在特殊形態(tài)的圖像(如斷層掃描等醫(yī)學圖像)處理中常常用到。圖像除法也可以用來檢測兩幅圖像間的區(qū)別,但是除法操作給出的是相應像素值的變化比率,而不是每個

43、像素的絕對差異,因而圖像除法也稱為比率變換。在MATLAB中使用imdivide函數(shù)進行兩幅圖像的除法。imdivide函數(shù)對兩幅輸入圖像的所有相應像素執(zhí)行元素對元素的除法操作(點除),并將得到的結(jié)果作為輸出圖像的相應像素值。imdivide函數(shù)的調(diào)用格式如下:Z = imdivide(X,Y)其中,Z=X/Y。例如,以下代碼將圖4所示的兩幅圖像進行除法運算,請將這個結(jié)果和減法操作的結(jié)果相比較,對比它們之間的不同之處:Rice = imread(rice.tif);I = double(rice);J= I * 0.43 + 90;Rice2 = uint8(J);Ip = imdivide(

44、rice, rice2);Imshow(Ip, );除法操作的結(jié)果如圖2.6所示。 圖2.6 原圖和減背景后的圖像相除的圖像效果5圖像的四則代數(shù)運算可以綜合使用多種圖像代數(shù)運算函數(shù)來完成一系列的操作。例如,使用以下語句計算兩幅圖像的平均值:I = imread(rice.tif);I2 = imread(cameraman.tif);K = imdivide(imadd(I,I2),2);建議最好不要用這種方式進行圖像操作,這是因為,對于uint8或uint16數(shù)據(jù),每一個算術(shù)函數(shù)在將其輸出結(jié)果傳遞給下一項操作之前都要進行數(shù)據(jù)截取,這個截取過程將會大大減少輸出圖像的信息量。執(zhí)行圖像四則運算操作

45、較好的一個辦法就是使用函數(shù)imlincomb。函數(shù)imlincomb按照雙精度執(zhí)行所有代數(shù)運算操作,而且僅對最好的輸出結(jié)果進行截取,該函數(shù)的調(diào)用格式如下:Z = imlincomb(A,X,B,Y,C);其中,Z=A*X+B*Y+C。MATLAB會自動根據(jù)輸入?yún)?shù)的個數(shù)判斷需要進行的運算。例如,以下語句將計算Z=A*X+C:Z = imlincomb(A,X,C)而以下語句將計算Z=A*X+B*Y:Z = imlincomb(A,X,B,Y,)四、 實驗報告要求1 描述實驗的基本步驟,用數(shù)據(jù)和圖片給出各個步驟中取得的實驗結(jié)果并進行必要的討論。2 必須包括原始圖像及其計算處理后的圖像以及相應的解釋。五、 思考題由圖像算術(shù)運算的運算結(jié)果,思考圖像減法運算在什么場合上發(fā)揮優(yōu)勢?實驗四

溫馨提示

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

評論

0/150

提交評論