MATLAB在圖像處理中的函數(shù)_第1頁(yè)
MATLAB在圖像處理中的函數(shù)_第2頁(yè)
MATLAB在圖像處理中的函數(shù)_第3頁(yè)
MATLAB在圖像處理中的函數(shù)_第4頁(yè)
MATLAB在圖像處理中的函數(shù)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(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)介

MATLAB在圖像處理中的函數(shù)圖像增強(qiáng)1.直方圖均衡化的Matlab實(shí)現(xiàn)1.1imhist函數(shù)功能:計(jì)算和顯示圖像的色彩直方圖格式:imhist(I,n)imhist(X,map)說(shuō)明:imhist(I,n)其中,n為指定的灰度級(jí)數(shù)目,缺省值為256;imhist(X,map)就算和顯示索引色圖像X的直方圖,map為調(diào)色板。用stem(x,counts)同樣可以顯示直方圖。1.2imcontour函數(shù)功能:顯示圖像的等灰度值圖格式:imcontour(I,n),imcontour(I,v)說(shuō)明:n為灰度級(jí)的個(gè)數(shù),v是有用戶指定所選的等灰度級(jí)向量。1.3imadjust函數(shù)功能:通過(guò)直方圖變換調(diào)整對(duì)比度格式:J=imadjust(I,[lowhigh],[bottomtop],gamma)newmap=imadjust(map,[lowhigh],[bottomtop],gamma)說(shuō)明:J=imadjust(I,[lowhigh],[bottomtop],gamma)其中,gamma為校正量r,[lowhigh]為原圖像中要變換的灰度范圍,[bottomtop]指定了變換后的灰度范圍;newmap=imadjust(map,[lowhigh],[bottomtop],gamma)調(diào)整索引色圖像的調(diào)色板map。此時(shí)若[lowhigh]和[bottomtop]都為2×3的矩陣,則分別調(diào)整R、G、B3個(gè)分量。1.4histeq函數(shù)功能:直方圖均衡化格式:J=histeq(I,hgram)J=histeq(I,n)[J,T]=histeq(I,...)newmap=histeq(X,map,hgram)newmap=histeq(X,map)[new,T]=histeq(X,...)說(shuō)明:J=histeq(I,hgram)實(shí)現(xiàn)了所謂“直方圖規(guī)定化”,即將原是圖象I的直方圖變換成用戶指定的向量hgram。hgram中的每一個(gè)元素都在[0,1]中;J=histeq(I,n)指定均衡化后的灰度級(jí)數(shù)n,缺省值為64;[J,T]=histeq(I,...)返回從能將圖像I的灰度直方圖變換成圖像J的直方圖的變換T;newmap=histeq(X,map)和[new,T]=histeq(X,...)是針對(duì)索引色圖像調(diào)色板的直方圖均衡。2.噪聲及其噪聲的Matlab實(shí)現(xiàn)imnoise函數(shù)格式:J=imnoise(I,type)J=imnoise(I,type,parameter)說(shuō)明:J=imnoise(I,type)返回對(duì)圖像I添加典型噪聲后的有噪圖像J,參數(shù)type和parameter用于確定噪聲的類型和相應(yīng)的參數(shù)。3.圖像濾波的Matlab實(shí)現(xiàn)3.1conv2函數(shù)功能:計(jì)算二維卷積格式:C=conv2(A,B)C=conv2(Hcol,Hrow,A)C=conv2(...,'shape')說(shuō)明:對(duì)于C=conv2(A,B),conv2的算矩陣A和B的卷積,若[Ma,Na]=size(A),[Mb,Nb]=size(B),則size(C)=[Ma+Mb-1,Na+Nb-1];C=conv2(Hcol,Hrow,A)中,矩陣A分別與Hcol向量在列方向和Hrow向量在行方向上進(jìn)行卷積;C=conv2(...,'shape')用來(lái)指定conv2返回二維卷積結(jié)果部分,參數(shù)shape可取值如下:》full為缺省值,返回二維卷積的全部結(jié)果;》same返回二維卷積結(jié)果中與A大小相同的中間部分;valid返回在卷積過(guò)程中,未使用邊緣補(bǔ)0部分進(jìn)行計(jì)算的卷積結(jié)果部分,當(dāng)size(A)>size(B)時(shí),size(C)=[Ma-Mb+1,Na-Nb+1]。3.2conv函數(shù)功能:計(jì)算多維卷積格式:與conv2函數(shù)相同3.3filter2函數(shù)功能:計(jì)算二維線型數(shù)字濾波,它與函數(shù)fspecial連用格式:Y=filter2(B,X)Y=filter2(B,X,'shape')說(shuō)明:對(duì)于Y=filter2(B,X),filter2使用矩陣B中的二維FIR濾波器對(duì)數(shù)據(jù)X進(jìn)行濾波,結(jié)果Y是通過(guò)二維互相關(guān)計(jì)算出來(lái)的,其大小與X一樣;對(duì)于Y=filter2(B,X,'shape'),filter2返回的Y是通過(guò)二維互相關(guān)計(jì)算出來(lái)的,其大小由參數(shù)shape確定,其取值如下:》full返回二維相關(guān)的全部結(jié)果,size(Y)>size(X);》same返回二維互相關(guān)結(jié)果的中間部分,Y與X大小相同;》valid返回在二維互相關(guān)過(guò)程中,未使用邊緣補(bǔ)0部分進(jìn)行計(jì)算的結(jié)果部分,有size(Y)<size(X)。3.4fspecial函數(shù)功能:產(chǎn)生預(yù)定義濾波器格式:H=fspecial(type)H=fspecial('gaussian',n,sigma)高斯低通濾波器H=fspecial('sobel')Sobel水平邊緣增強(qiáng)濾波器H=fspecial('prewitt')Prewitt水平邊緣增強(qiáng)濾波器H=fspecial('laplacian',alpha)近似二維拉普拉斯運(yùn)算濾波器H=fspecial('log',n,sigma)高斯拉普拉斯(LoG)運(yùn)算濾波器H=fspecial('average',n)均值濾波器H=fspecial('unsharp',alpha)模糊對(duì)比增強(qiáng)濾波器說(shuō)明:對(duì)于形式H=fspecial(type),fspecial函數(shù)產(chǎn)生一個(gè)由type指定的二維濾波器H,返回的H常與其它濾波器搭配使用。4.彩色增強(qiáng)的Matlab實(shí)現(xiàn)4.1imfilter函數(shù)功能:真彩色增強(qiáng)格式:B=imfilter(A,h)說(shuō)明:將原始圖像A按指定的濾波器h進(jìn)行濾波增強(qiáng)處理,增強(qiáng)后的圖像B與A的尺寸和類型相同。圖像的變換1.離散傅立葉變換的Matlab實(shí)現(xiàn)Matlab函數(shù)fft、fft2和fftn分別可以實(shí)現(xiàn)一維、二維和N維DFT算法;而函數(shù)ifft、ifft2和ifftn則用來(lái)計(jì)算反DFT。這些函數(shù)的調(diào)用格式如下:A=fft(X,N,DIM)其中,X表示輸入圖像;N表示采樣間隔點(diǎn),如果X小于該數(shù)值,那么Matlab將會(huì)對(duì)X進(jìn)行零填充,否則將進(jìn)行截取,使之長(zhǎng)度為N;DIM表示要進(jìn)行離散傅立葉變換。A=fft2(X,MROWS,NCOLS)其中,MROWS和NCOLS指定對(duì)X進(jìn)行零填充后的X大小。A=fftn(X,SIZE)其中,SIZE是一個(gè)向量,它們每一個(gè)元素都將指定X相應(yīng)維進(jìn)行零填充后的長(zhǎng)度。函數(shù)ifft、ifft2和ifftn的調(diào)用格式于對(duì)應(yīng)的離散傅立葉變換函數(shù)一致。例子:圖像的二維傅立葉頻譜%讀入原始圖像I=imread('lena.bmp');imshow(I)%求離散傅立葉頻譜J=fftshift(fft2(I));figure;imshow(log(abs(J)),[8,10])2.離散余弦變換的Matlab實(shí)現(xiàn)2.1.dct2函數(shù)功能:二維DCT變換格式:B=dct2(A)B=dct2(A,m,n)B=dct2(A,[m,n])說(shuō)明:B=dct2(A)計(jì)算A的DCT變換B,A與B的大小相同;B=dct2(A,m,n)和B=dct2(A,[m,n])通過(guò)對(duì)A補(bǔ)0或剪裁,使B的大小為m×n。2.2.dict2函數(shù)功能:DCT反變換格式:B=idct2(A)B=idct2(A,m,n)B=idct2(A,[m,n])說(shuō)明:B=idct2(A)計(jì)算A的DCT反變換B,A與B的大小相同;B=idct2(A,m,n)和B=idct2(A,[m,n])通過(guò)對(duì)A補(bǔ)0或剪裁,使B的大小為m×n。2.3.dctmtx函數(shù)功能:計(jì)算DCT變換矩陣格式:D=dctmtx(n)說(shuō)明:D=dctmtx(n)返回一個(gè)n×n的DCT變換矩陣,輸出矩陣D為double類型。3.圖像小波變換的Matlab實(shí)現(xiàn)3.1一維小波變換的Matlab實(shí)現(xiàn)(1)dwt函數(shù)功能:一維離散小波變換格式:[cA,cD]=dwt(X,'wname')[cA,cD]=dwt(X,Lo_D,Hi_D)說(shuō)明:[cA,cD]=dwt(X,'wname')使用指定的小波基函數(shù)'wname'對(duì)信號(hào)X進(jìn)行分解,cA、cD分別為近似分量和細(xì)節(jié)分量;[cA,cD]=dwt(X,Lo_D,Hi_D)使用指定的濾波器組Lo_D、Hi_D對(duì)信號(hào)進(jìn)行分解。(2)idwt函數(shù)功能:一維離散小波反變換格式:X=idwt(cA,cD,'wname')X=idwt(cA,cD,Lo_R,Hi_R)X=idwt(cA,cD,'wname',L)X=idwt(cA,cD,Lo_R,Hi_R,L)說(shuō)明:X=idwt(cA,cD,'wname')由近似分量cA和細(xì)節(jié)分量cD經(jīng)小波反變換重構(gòu)原始信號(hào)X。'wname'為所選的小波函數(shù)X=idwt(cA,cD,Lo_R,Hi_R)用指定的重構(gòu)濾波器Lo_R和Hi_R經(jīng)小波反變換重構(gòu)原始信號(hào)X。X=idwt(cA,cD,'wname',L)和X=idwt(cA,cD,Lo_R,Hi_R,L)指定返回信號(hào)X中心附近的L個(gè)點(diǎn)。3.2二維小波變換的Matlab實(shí)現(xiàn)二維小波變換的函數(shù)---------------------------------------------函數(shù)名函數(shù)功能---------------------------------------------dwt2二維離散小波變換wavedec2二維信號(hào)的多層小波分解idwt2二維離散小波反變換waverec2二維信號(hào)的多層小波重構(gòu)wrcoef2由多層小波分解重構(gòu)某一層的分解信號(hào)upcoef2由多層小波分解重構(gòu)近似分量或細(xì)節(jié)分量detcoef2提取二維信號(hào)小波分解的細(xì)節(jié)分量appcoef2提取二維信號(hào)小波分解的近似分量upwlev2二維小波分解的單層重構(gòu)dwtpet2二維周期小波變換idwtper2二維周期小波反變換---------------------------------------------(1)wcodemat函數(shù)功能:對(duì)數(shù)據(jù)矩陣進(jìn)行偽彩色編碼格式:Y=wcodemat(X,NB,OPT,ABSOL)Y=wcodemat(X,NB,OPT)Y=wcodemat(X,NB)Y=wcodemat(X)說(shuō)明:Y=wcodemat(X,NB,OPT,ABSOL)返回?cái)?shù)據(jù)矩陣X的編碼矩陣Y;NB偽編碼的最大值,即編碼范圍為0~NB,缺省值NB=16;OPT指定了編碼的方式(缺省值為'mat'),即:OPT='row',按行編碼OPT='col',按列編碼OPT='mat',按整個(gè)矩陣編碼ABSOL是函數(shù)的控制參數(shù)(缺省值為'1'),即:ABSOL=0時(shí),返回編碼矩陣ABSOL=1時(shí),返回?cái)?shù)據(jù)矩陣的絕對(duì)值A(chǔ)BS(X)(2)dwt2函數(shù)功能:二維離散小波變換格式:[cA,cH,cV,cD]=dwt2(X,'wname')[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)說(shuō)明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函數(shù)'wname'對(duì)二維信號(hào)X進(jìn)行二維離散小波變幻;cA,cH,cV,cD分別為近似分量、水平細(xì)節(jié)分量、垂直細(xì)節(jié)分量和對(duì)角細(xì)節(jié)分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)使用指定的分解低通和高通濾波器Lo_D和Hi_D分解信號(hào)X。(3)wavedec2函數(shù)功能:二維信號(hào)的多層小波分解格式:[C,S]=wavedec2(X,N,'wname')[C,S]=wavedec2(X,N,Lo_D,Hi_D)說(shuō)明:[C,S]=wavedec2(X,N,'wname')使用小波基函數(shù)'wname'對(duì)二維信號(hào)X進(jìn)行N層分解;[C,S]=wavedec2(X,N,Lo_D,Hi_D)使用指定的分解低通和高通濾波器Lo_D和Hi_D分解信號(hào)X。(4)idwt2函數(shù)功能:二維離散小波反變換格式:X=idwt2(cA,cH,cV,cD,'wname')X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R)X=idwt2(cA,cH,cV,cD,'wname',S)X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S)說(shuō)明:X=idwt2(cA,cH,cV,cD,'wname')由信號(hào)小波分解的近似信號(hào)cA和細(xì)節(jié)信號(hào)cH、cH、cV、cD經(jīng)小波反變換重構(gòu)原信號(hào)X;X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R)使用指定的重構(gòu)低通和高通濾波器Lo_R和Hi_R重構(gòu)原信號(hào)X;X=idwt2(cA,cH,cV,cD,'wname',S)和X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S)返回中心附近的S個(gè)數(shù)據(jù)點(diǎn)。(5)waverec2函數(shù)說(shuō)明:二維信號(hào)的多層小波重構(gòu)格式:X=waverec2(C,S,'wname')X=waverec2(C,S,Lo_R,Hi_R)說(shuō)明:X=waverec2(C,S,'wname')由多層二維小波分解的結(jié)果C、S重構(gòu)原始信號(hào)X,'wname'為使用的小波基函數(shù);X=waverec2(C,S,Lo_R,Hi_R)使用重構(gòu)低通和高通濾波器Lo_R和Hi_R重構(gòu)原信號(hào)。圖像處理工具箱1.圖像和圖像數(shù)據(jù)缺省情況下,MATLAB將圖像中的數(shù)據(jù)存儲(chǔ)為雙精度類型(double),64位浮點(diǎn)數(shù),所需存儲(chǔ)量很大;MATLAB還支持另一種類型無(wú)符號(hào)整型(uint8),即圖像矩陣中每個(gè)數(shù)據(jù)占用1個(gè)字節(jié)。在使用MATLAB工具箱時(shí),一定要注意函數(shù)所要求的參數(shù)類型。另外,uint8與double兩種類型數(shù)據(jù)的值域不同,編程需注意值域轉(zhuǎn)換。從uint8到double的轉(zhuǎn)換---------------------------------------------圖像類型MATLAB語(yǔ)句---------------------------------------------索引色B=double(A)+1索引色或真彩色B=double(A)/255二值圖像B=double(A)---------------------------------------------從double到uint8的轉(zhuǎn)換---------------------------------------------圖像類型MATLAB語(yǔ)句---------------------------------------------索引色B=uint8(round(A-1))索引色或真彩色B=uint8(round(A*255))二值圖像B=logical(uint8(round(A)))---------------------------------------------2.圖像處理工具箱所支持的圖像類型2.1真彩色圖像R、G、B三個(gè)分量表示一個(gè)像素的顏色。如果要讀取圖像中(100,50)處的像素值,可查看三元數(shù)據(jù)(100,50,1:3)。真彩色圖像可用雙精度存儲(chǔ),亮度值范圍是[0,1];比較符合習(xí)慣的存儲(chǔ)方法是用無(wú)符號(hào)整型存儲(chǔ),亮度值范圍[0,255]2.2索引色圖像包含兩個(gè)結(jié)構(gòu),一個(gè)是調(diào)色板,另一個(gè)是圖像數(shù)據(jù)矩陣。調(diào)色板是一個(gè)有3列和若干行的色彩映象矩陣,矩陣每行代表一種顏色,3列分別代表紅、綠、藍(lán)色強(qiáng)度的雙精度數(shù)。注意:MATLAB中調(diào)色板色彩強(qiáng)度[0,1],0代表最暗,1代表最亮。常用顏色的RGB值--------------------------------------------顏色RGB顏色RGB--------------------------------------------黑001洋紅101白111青藍(lán)011紅100天藍(lán)0.6701綠010橘黃10.50藍(lán)001深紅0.500黃110灰0.50.50.5--------------------------------------------產(chǎn)生標(biāo)準(zhǔn)調(diào)色板的函數(shù)---------------------------------------------函數(shù)名調(diào)色板---------------------------------------------Hsv色彩飽和度,以紅色開始,并以紅色結(jié)束Hot黑色-紅色-黃色-白色Cool青藍(lán)和洋紅的色度Pink粉紅的色度Gray線型灰度Bone帶藍(lán)色的灰度JetHsv的一種變形,以藍(lán)色開始,以藍(lán)色結(jié)束Copper線型銅色度Prim三棱鏡,交替為紅、橘黃、黃、綠和天藍(lán)Flag交替為紅、白、藍(lán)和黑---------------------------------------------缺省情況下,調(diào)用上述函數(shù)灰產(chǎn)生一個(gè)64×3的調(diào)色板,用戶也可指定調(diào)色板大小。索引色圖像數(shù)據(jù)也有double和uint8兩種類型。當(dāng)圖像數(shù)據(jù)為double類型時(shí),值1代表調(diào)色板中的第1行,值2代表第2行……如果圖像數(shù)據(jù)為uint8類型,0代表調(diào)色板的第一行,,值1代表第2行……2.3灰度圖像存儲(chǔ)灰度圖像只需要一個(gè)數(shù)據(jù)矩陣。數(shù)據(jù)類型可以是double,[0,1];也可以是uint8,[0,255]2.4二值圖像二值圖像只需一個(gè)數(shù)據(jù)矩陣,每個(gè)像素只有兩個(gè)灰度值,可以采用uint8或double類型存儲(chǔ)。MATLAB工具箱中以二值圖像作為返回結(jié)果的函數(shù)都使用uint8類型。2.5圖像序列MATLAB工具箱支持將多幀圖像連接成圖像序列。圖像序列是一個(gè)4維數(shù)組,圖像幀的序號(hào)在圖像的長(zhǎng)、寬、顏色深度之后構(gòu)成第4維。分散的圖像也可以合并成圖像序列,前提是各圖像尺寸必須相同,若是索引色圖像,調(diào)色板也必須相同??蓞⒖糲at()函數(shù)A=cat(4,A1,A2,A3,A4,A5)3.MATLAB圖像類型轉(zhuǎn)換圖像類型轉(zhuǎn)換函數(shù)---------------------------------------------函數(shù)名函數(shù)功能---------------------------------------------dither圖像抖動(dòng),將灰度圖變成二值圖,或?qū)⒄娌噬珗D像抖動(dòng)成索引色圖像gray2ind將灰度圖像轉(zhuǎn)換成索引圖像grayslice通過(guò)設(shè)定閾值將灰度圖像轉(zhuǎn)換成索引色圖像im2bw通過(guò)設(shè)定亮度閾值將真彩色、索引色、灰度圖轉(zhuǎn)換成二值圖ind2gray將索引色圖像轉(zhuǎn)換成灰度圖像ind2rgb將索引色圖像轉(zhuǎn)換成真彩色圖像mat2gray將一個(gè)數(shù)據(jù)矩陣轉(zhuǎn)換成一副灰度圖rgb2gray將一副真彩色圖像轉(zhuǎn)換成灰度圖像rgb2ind將真彩色圖像轉(zhuǎn)換成索引色圖像---------------------------------------------4.圖像文件的讀寫和查詢4.1圖形圖像文件的讀取利用函數(shù)imread()可完成圖形圖像文件的讀取,語(yǔ)法:A=imread(filename,fmt)[X,map]=imread(filename,fmt)[...]=imread(filename)[...]=imread(filename,idx)(只對(duì)TIF格式的文件)[...]=imread(filename,ref)(只對(duì)HDF格式的文件)通常,讀取的大多數(shù)圖像均為8bit,當(dāng)這些圖像加載到內(nèi)存中時(shí),Matlab就將其存放在類uint8中。此為Matlab還支持16bit的PNG和TIF圖像,當(dāng)讀取這類文件時(shí),Matlab就將其存貯在uint16中。注意:對(duì)于索引圖像,即使圖像陣列的本身為類uint8或類uint16,imread函數(shù)仍將顏色映象表讀取并存貯到一個(gè)雙精度的浮點(diǎn)類型的陣列中。4.2圖形圖像文件的寫入使用imwrite函數(shù),語(yǔ)法如下:imwrite(A,filename,fmt)imwrite(X,map,filename,fmt)imwrite(...,filename)imwrite(...,parameter,value)當(dāng)利用imwrite函數(shù)保存圖像時(shí),Matlab缺省的方式是將其簡(jiǎn)化道uint8的數(shù)據(jù)格式。4.3圖形圖像文件信息的查詢imfinfo()函數(shù)5.圖像文件的顯示5.1索引圖像及其顯示方法一:image(X)colormap(map)方法二:imshow(X,map)5.2灰度圖像及其顯示Matlab7.0中,要顯示一副灰度圖像,可以調(diào)用函數(shù)imshow或imagesc(即imagescale,圖像縮放函數(shù))(1)imshow函數(shù)顯示灰度圖像使用imshow(I)或使用明確指定的灰度級(jí)書目:imshow(I,32)由于Matlab自動(dòng)對(duì)灰度圖像進(jìn)行標(biāo)度以適合調(diào)色板的范圍,因而可以使用自定義大小的調(diào)色板。其調(diào)用格式如下:imshow(I,[low,high])其中,low和high分別為數(shù)據(jù)數(shù)組的最小值和最大值。(2)imagesc函數(shù)顯示灰度圖像下面的代碼是具有兩個(gè)輸入?yún)?shù)的imagesc函數(shù)顯示一副灰度圖像imagesc(1,[0,1]);colormap(gray);imagesc函數(shù)中的第二個(gè)參數(shù)確定灰度范圍?;叶确秶械牡谝粋€(gè)值(通常是0),對(duì)應(yīng)于顏色映象表中的第一個(gè)值(顏色),第二個(gè)值(通常是1)則對(duì)應(yīng)與顏色映象表中的最后一個(gè)值(顏色)?;叶确秶虚g的值則線型對(duì)應(yīng)與顏色映象表中剩余的值(顏色)。在調(diào)用imagesc函數(shù)時(shí),若只使用一個(gè)參數(shù),可以用任意灰度范圍顯示圖像。在該調(diào)用方式下,數(shù)據(jù)矩陣中的最小值對(duì)應(yīng)于顏色映象表中的第一個(gè)顏色值,數(shù)據(jù)矩陣中的最大值對(duì)應(yīng)于顏色映象表中的最后一個(gè)顏色值。5.3RGB圖像及其顯示(1)image(RGB)不管RGB圖像的類型是double浮點(diǎn)型,還是uint8或uint16無(wú)符號(hào)整數(shù)型,Matlab都能通過(guò)image函數(shù)將其正確顯示出來(lái)。RGB8=uint8(round(RGB64×255));%將double浮點(diǎn)型轉(zhuǎn)換為uint8無(wú)符號(hào)整型RGB64=double(RGB8)/255;%將uint8無(wú)符號(hào)整型轉(zhuǎn)換為double浮點(diǎn)型RGB16=uint16(round(RGB64×65535));%將double浮點(diǎn)型轉(zhuǎn)換為uint16無(wú)符號(hào)整型RGB64=double(RGB16)/65535;%將uint16無(wú)符號(hào)整型轉(zhuǎn)換為double浮點(diǎn)型(2)imshow(RGB)參數(shù)是一個(gè)m×n×3的數(shù)組5.4二進(jìn)制圖像及其顯示(1)imshow(BW)在Matlab7.0中,二進(jìn)制圖像是一個(gè)邏輯類,僅包括0和1兩個(gè)數(shù)值。像素0顯示為黑色,像素1顯示為白色。顯示時(shí),也可通過(guò)NOT(~)命令,對(duì)二進(jìn)制圖象進(jìn)行取反,使數(shù)值0顯示為白色;1顯示為黑色。例如:imshow(~BW)(2)此外,還可以使用一個(gè)調(diào)色板顯示一副二進(jìn)制圖像。如果圖形是uint8數(shù)據(jù)類型,則數(shù)值0顯示為調(diào)色板的第一個(gè)顏色,數(shù)值1顯示為第二個(gè)顏色。例如:imshow(BW,[100;001])5.5直接從磁盤顯示圖像可使用一下命令直接進(jìn)行圖像文件的顯示:imshowfilename其中,filename為要顯示的圖像文件的文件名。如果圖像是多幀的,那么imshow將僅顯示第一幀。但需注意,在使用這種方式時(shí),圖像數(shù)據(jù)沒(méi)有保存在Matlab7.0工作平臺(tái)。如果希望將圖像裝入工作臺(tái)中,需使用getimage函數(shù),從當(dāng)前的句柄圖形圖像對(duì)象中獲取圖像數(shù)據(jù),命令形式為:rgb=getimage;圖像處理函數(shù)詳解——strel功能:用于膨脹腐蝕及開閉運(yùn)算等操作的結(jié)構(gòu)元素對(duì)象(本論壇隨即對(duì)膨脹腐蝕等操作進(jìn)行講解)。用法:SE=strel(shape,parameters)創(chuàng)建由指定形狀shape對(duì)應(yīng)的結(jié)構(gòu)元素。其中shape的種類有arbitrary''pair''diamond''periodicline''disk''rectangle''line''square''octagon參數(shù)parameters一般控制SE的大小。例子:se1=strel('square',6)%創(chuàng)建6*6的正方形se2=strel('line',10,45)%創(chuàng)建直線長(zhǎng)度10,角度45se3=strel('disk',15)%創(chuàng)建圓盤半徑15se4=strel('ball',15,5)%創(chuàng)建橢圓體,半徑15,高度5圖像處理函數(shù)詳解——roipoly功能:用于選擇圖像中的多邊形區(qū)域。用法:BW=roipoly(I,c,r)BW=roipoly(I)BW=roipoly(x,y,I,xi,yi)[BW,xi,yi]=roipoly(...)[x,y,BW,xi,yi]=roipoly(...)BW=roipoly(I,c,r)表示用向量c、r指定多邊形各點(diǎn)的X、Y坐標(biāo)。BW選中的區(qū)域?yàn)?,其他部分的值為0.BW=roipoly(I)表示建立交互式的處理界面。BW=roipoly(x,y,I,xi,yi)表示向量x和y建立非默認(rèn)的坐標(biāo)系,然后在指定的坐標(biāo)系下選擇由向量xi,yi指定的多邊形區(qū)域。例子:I=imread('eight.tif');c=[222272300270221194];r=[21217512112175];BW=roipoly(I,c,r);imshow(I)figure,imshow(BW)圖像處理函數(shù)詳解——roifilt2功能:用于對(duì)一個(gè)區(qū)域進(jìn)行濾波。用法:J=roifilt2(h,I,BW)J=roifilt2(I,BW,fun)J=roifilt2(I,BW,fun,P1,P2,...)J=roifilt2(h,I,BW)表示使用濾波器h對(duì)圖像I中用二值掩模BW選中的區(qū)域?yàn)V波。BW為和I大小相同的二值圖像。J=roifilt2(I,BW,fun,P1,P2,...)表示用fun函數(shù)處理區(qū)域?yàn)V波圖像I。參數(shù)P1、P2等為fun函數(shù)的輸入?yún)?shù)。例子:I=imread('eight.tif');c=[222272300270221194];r=[21217512112175];BW=roipoly(I,c,r);h=fspecial('unsharp');%指定濾波器J=roifilt2(h,I,BW);imshow(J),figure,imshow(J)圖像處理函數(shù)詳解——roifill(ROI——region-of-interest)功能:對(duì)指定區(qū)域進(jìn)行填充。用法:J=roifill(I,c,r)J=roifill(I)[J,BW]=roifill(...)J=roifill(x,y,I,xi,yi)[x,y,J,BW,xi,yi]=roifill(...)J=roifill(I,c,r)填充由向量c,r指定的多邊形,c和r分別為多邊形的各頂點(diǎn)X、Y坐標(biāo)??捎糜诓脸龍D像中的小物體。J=roifill(I)用于交互式處理界面。J=roifill(I,BW)用BW(和I大小一致)掩模填充此區(qū)域。如果為多個(gè)多邊形,則分別執(zhí)行插值填充。例子:I=imread('eight.tif');c=[222272300270221194];r=[21217512112175];J=roifill(I,c,r);imshow(I)figure,imshow(J)圖像處理函數(shù)詳解——roicolor功能:可以根據(jù)顏色選定區(qū)域。用法:BW=roicolor(A,low,high)BW=roicolor(A,v)BW=roicolor(A,low,high)色圖范圍為[lowhigh],返回這些像素選擇區(qū)域。BW為大小和A相同的數(shù)組,若A中元素值在[lowhigh]范圍內(nèi),則返回值1,否則返回0.BW=roicolor(A,v)返回圖像A中像素與向量v相匹配的區(qū)域,BW為二值圖像,1值為A中與v相匹配的地方。例子:I=imread('rice.png');BW=roicolor(I,128,255);imshow(I);figure,imshow(BW)matlab圖像處理函數(shù)詳解——rgb2gray功能:將真彩色圖像轉(zhuǎn)換成灰度圖像或者將彩色色圖轉(zhuǎn)換成灰度色圖。用法:I=rgb2gray(RGB)newmap=rgb2gray(map)I=rgb2gray(RGB)將真彩色圖像RGB轉(zhuǎn)換成灰度圖像Inewmap=rgb2gray(map)將彩色色圖map轉(zhuǎn)換成灰度色圖newmap例子:X=imread(‘peppers.png’);BW=rgb2gray(X);imview(BW)Matlab圖像處理函數(shù):regionprops這里給出在Matlab圖像處理工具箱中非常重要的一個(gè)圖像分析函數(shù):regionprops。顧名思義:它的用途是getthepropertiesofregion,即用來(lái)度量圖像區(qū)域?qū)傩缘暮瘮?shù)。語(yǔ)法STATS=regionprops(L,properties)描述測(cè)量標(biāo)注矩陣L中每一個(gè)標(biāo)注區(qū)域的一系列屬性。L中不同的正整數(shù)元素對(duì)應(yīng)不同的區(qū)域,例如:L中等于整數(shù)1的元素對(duì)應(yīng)區(qū)域1;L中等于整數(shù)2的元素對(duì)應(yīng)區(qū)域2;以此類推。返回值STATS是一個(gè)長(zhǎng)度為max(L(:))的結(jié)構(gòu)數(shù)組,結(jié)構(gòu)數(shù)組的相應(yīng)域定義了每一個(gè)區(qū)域相應(yīng)屬性下的度量。properties可以是由逗號(hào)分割的字符串列表、飽含字符串的單元數(shù)組、單個(gè)字符串'all'或者'basic'。如果properties等于字符串'all',則所有下述字串列表中的度量數(shù)據(jù)都將被計(jì)算,如果properties沒(méi)有指定或者等于'basic',則屬性:'Area','Centroid',和'BoundingBox'將被計(jì)算。下面的列表就是所有有效的屬性字符串,它們大小寫敏感并且可以縮寫。屬性字符串列表AreaEquivDiameterMajorAxisLengthBoundingBoxEulerNumberMinorAxisLengthCentroidExtentOrientationConvexAreaExtremaPixelIdxListConvexHullFilledAreaPixelListConvexImageFilledImageSolidityEccentricityImage屬性詳細(xì)定義本部分將結(jié)合一個(gè)具體的例子說(shuō)明各種字串相關(guān)屬性的意義,矩陣取自在蟻蛉模式識(shí)別中做過(guò)預(yù)處理后的斑紋分割圖像,如下圖:這是一幅二值圖像,在應(yīng)用regionprops函數(shù)之前必須將其標(biāo)注,可以調(diào)用bwlabel函數(shù)和偽彩色處理,標(biāo)注后的圖像如下圖:下面基于以上的材料來(lái)考察屬性的含義。'Area'是標(biāo)量,計(jì)算出在圖像各個(gè)區(qū)域中像素總個(gè)數(shù)。注意:這個(gè)數(shù)值可能與由函數(shù)bwarea計(jì)算的值有輕微的不同。對(duì)于這樣一個(gè)數(shù)值,我們可以使用它除以整個(gè)圖像區(qū)域的像素個(gè)數(shù)而得到斑紋比例,可以作為模式識(shí)別的候選特征,并且這個(gè)特征是仿射不變的。在本例中最后計(jì)算出的面積向量是[3.8952,9.7213,17.663,3.5762,1.3432,1.6958,0.41974,0.41974,21.625,12.324,4.8187,1.5111]/10000.'BoundingBox'是1行ndims(L)*2列的向量,即包含相應(yīng)區(qū)域的最小矩形。BoundingBox形式為[ul_cornerwidth],這里ul_corner以[xyz...]的坐標(biāo)形式給出邊界盒子的左上角、boxwidth以[x_widthy_width...]形式指出邊界盒子沿著每個(gè)維數(shù)方向的長(zhǎng)度。本例的各部分區(qū)域最小矩形如下圖!注意:請(qǐng)?jiān)谶@熟悉一下函數(shù)rectangle的使用方法。'Centroid'是1行ndims(L)列的向量,給出每個(gè)區(qū)域的質(zhì)心(重心)。注意:Centroid的第一個(gè)元素是重心水平坐標(biāo)(x坐標(biāo))、第二個(gè)元素是重心垂直坐標(biāo)(y坐標(biāo))。Centroid所有其它元素則按照維順序排列。下圖采用以中心為圓心的小圓來(lái)演示質(zhì)心檢測(cè)的效果:圖中各質(zhì)心坐標(biāo)(標(biāo)準(zhǔn)化后的)依次為:(x,y)=0.10478,0.767390.11883,0.0815450.19586,0.610920.30701,0.308070.65712,0.316130.73165,0.305310.74548,0.353780.80624,0.728020.84546,0.615640.90554,0.0795740.93477,0.778710.97611,0.15576'MajorAxisLength'是標(biāo)量,與區(qū)域具有相同標(biāo)準(zhǔn)二階中心矩的橢圓的長(zhǎng)軸長(zhǎng)度(像素意義下)。本屬性只支持二維標(biāo)注矩陣。'MinorAxisLength'是標(biāo)量,與區(qū)域具有相同標(biāo)準(zhǔn)二階中心矩的橢圓的短軸長(zhǎng)度(像素意義下)。本屬性只支持二維標(biāo)注矩陣。'Eccentricity'是標(biāo)量,與區(qū)域具有相同標(biāo)準(zhǔn)二階中心矩的橢圓的離心率(可作為特征)。本屬性只支持二維標(biāo)注矩陣。'Orientation'是標(biāo)量,與區(qū)域具有相同標(biāo)準(zhǔn)二階中心矩的橢圓的長(zhǎng)軸與x軸的交角(度)。本屬性只支持二維標(biāo)注矩陣。本例的各區(qū)域橢圓數(shù)據(jù)為:長(zhǎng)軸:18.767,45.172,43.003,30.687,16.505,15.698,5.8833,5.8833,46.954,38.873,22.929,15.429短軸:16.211,26.079,32.709,9.8458,6.8019,8.6386,5.8833,5.8833,35.976,31.022,16.98,7.8038離心率:0.50387,0.81652,0.6492,0.94713,0.91114,0.83497,0,0,0.64262,0.60262,0.67205,0.86266方向角:-29.219,-32.192,-9.3909,-50.904,-70.333,48.823,0,0,14.035,17.986,3.0319,-34.238我們可以考察離心率的變化趨勢(shì),得到對(duì)于整個(gè)區(qū)域中的各區(qū)域的似圓性如何的大致感覺(jué),比如下圖是12個(gè)區(qū)域的離心率變化情形:由上圖可以看出區(qū)域整體的似圓性并不好,實(shí)際上可以考慮使用離心率向量作為一個(gè)模式識(shí)別的特征!!'Image'二值圖像,與某區(qū)域具有相同大小的邏輯矩陣。你可以用這個(gè)屬性直接將每個(gè)子區(qū)域提取出來(lái),然后再作相應(yīng)的處理!比如本例的第一個(gè)斑紋區(qū)域提出后是。'FilledImage'與上相同,唯一區(qū)別是這是個(gè)做了填充的邏輯矩陣!本例中和上面的沒(méi)有區(qū)別,只有區(qū)域有空洞時(shí)才有明顯差別。'FilledArea'是標(biāo)量,填充區(qū)域圖像中的on像素個(gè)數(shù)。'ConvexHull'是p行2列的矩陣,包含某區(qū)域的最小凸多邊形。此矩陣的每一行存儲(chǔ)此多邊形一個(gè)頂點(diǎn)的xy坐標(biāo)。此屬性只支持2維標(biāo)注矩陣。例如:本例中的所有子區(qū)域的最小凸多邊形圖形如下圖看看第2個(gè)區(qū)域的大圖。'ConvexImage'二值圖像,用來(lái)畫出上述的區(qū)域最小凸多邊形。同時(shí)此凸包內(nèi)的像素均打開,圖像尺寸和此區(qū)域?qū)?yīng)邊界矩形相同。此屬性只支持2維標(biāo)注矩陣。例如:本例中的第2個(gè)子區(qū)域的最小凸多邊形圖形為。注意:此處函數(shù)roipoly很有用!'ConvexArea'是標(biāo)量,填充區(qū)域凸多邊形圖像中的on像素個(gè)數(shù)。'EulerNumber'是標(biāo)量,幾何拓?fù)渲械囊粋€(gè)拓?fù)洳蛔兞?-歐拉數(shù),等于圖像中目標(biāo)個(gè)數(shù)減去這些目標(biāo)中空洞的個(gè)數(shù)。此屬性只支持2維標(biāo)注矩陣。本例中的歐拉數(shù)均為1。'Extrema'8行2列矩陣,八方向區(qū)域極值點(diǎn)。矩陣每行存儲(chǔ)這些點(diǎn)的xy坐標(biāo),向量格式為[top-lefttop-rightright-topright-bottombottom-rightbottom-leftleft-bottomleft-top]。此屬性只支持2維標(biāo)注矩陣。'EquivDiameter'是標(biāo)量,等價(jià)直徑:與區(qū)域具有相同面積的圓的直徑。計(jì)算公式為:sqrt(4*Area/pi)。.此屬性只支持2維標(biāo)注矩陣。本例標(biāo)準(zhǔn)化后的12區(qū)域直徑向量為:[2.227,3.5182,4.7423,2.1339,1.3077,1.4694,0.73105,0.73105,5.2473,3.9612,2.477,1.3871]/100.'Solidity'是標(biāo)量,同時(shí)在區(qū)域和其最小凸多邊形中的像素比例。計(jì)算公式為:Area/ConvexArea,這也是個(gè)仿射特征,實(shí)際上反映出區(qū)域的固靠性程度。此屬性只支持2維標(biāo)注矩陣。本例12區(qū)域凸元素比例向量為:[0.97071,0.66171,0.90846,0.86585,0.84211,0.94393,1,1,0.9096,0.75514,0.90823,0.94737].'Extent'是標(biāo)量,同時(shí)在區(qū)域和其最小邊界矩形中的像素比例。計(jì)算公式為:Area除以邊界矩形面積,這也是個(gè)仿射特征,實(shí)際上反映出區(qū)域的擴(kuò)展范圍程度。此屬性只支持2維標(biāo)注矩陣。不再給出計(jì)算結(jié)果??!'PixelIdxList'p元向量,存儲(chǔ)區(qū)域像素的索引下標(biāo)。'PixelList'p行ndims(L)列矩陣,存儲(chǔ)上述索引對(duì)應(yīng)的像素坐標(biāo)。支持類輸入的標(biāo)注矩陣L可以有任意的數(shù)值類型。提醒使用逗號(hào)分割列表語(yǔ)法當(dāng)你基于regionprops函數(shù)的輸出作算法設(shè)計(jì)時(shí),使用逗號(hào)分割列表語(yǔ)法就凸顯出其非常的價(jià)值。例如:對(duì)于一個(gè)存儲(chǔ)標(biāo)量的屬性,可以利用此語(yǔ)法創(chuàng)建一個(gè)包含圖像中不同區(qū)域內(nèi)此屬性值的向量。例如以下兩句是等價(jià)的:stats(1).Area,stats(2).Area,...,stats(end).Areastats.Area因此,可以使用下面的方法創(chuàng)建相應(yīng)的向量:regionprops(L,'Area');allArea=[stats.Area];allArea就是一個(gè)與結(jié)構(gòu)數(shù)組stats具備相同長(zhǎng)度的向量?;谔囟ㄔ瓌t的區(qū)域選擇當(dāng)你要基于特定準(zhǔn)則條件選擇某個(gè)區(qū)域時(shí),將函數(shù)ismember和regionprops聯(lián)合使用是很有用處的。例如:創(chuàng)建一個(gè)只包含面積大于80的二值圖像,用以下命令idx=find([stats.Area]>80);BW2=ismember(L,idx);計(jì)算性能考慮大多數(shù)的屬性測(cè)量計(jì)算時(shí)間都非常地少,除了那些非常依賴于圖像L中區(qū)域個(gè)數(shù)和像素個(gè)數(shù)的屬性。例如:'ConvexHull''ConvexImage''ConvexArea''FilledImage'另外建議一次性計(jì)算所有屬性值,因?yàn)榉珠_計(jì)算和一起計(jì)算時(shí)間相差無(wú)幾!使用二值圖像工作在調(diào)用regionprops之前必須將二值圖像轉(zhuǎn)變?yōu)闃?biāo)注矩陣。兩個(gè)函數(shù)可以做到:L=bwlabel(BW);L=double(BW);注意:雖然這兩個(gè)函數(shù)從同一二值圖像產(chǎn)生不同的標(biāo)注矩陣,但是它們是等效的!例如:給出如下的二值矩陣BW,110000110000000000000011000011bwlabel創(chuàng)建一個(gè)包含兩個(gè)分別由整數(shù)1和2標(biāo)注的連續(xù)區(qū)域標(biāo)注矩陣mylabel=bwlabel(BW)mylabel=110000110000000000000022000022double創(chuàng)建一個(gè)包含一個(gè)由整數(shù)1標(biāo)注的不連續(xù)區(qū)域標(biāo)注矩陣。mylabel2=double(BW)mylabel2=110000110000000000000011000011regionprops并不負(fù)責(zé)自動(dòng)轉(zhuǎn)換二值圖像數(shù)據(jù)類型,而是由你自己決定使用何種數(shù)據(jù)轉(zhuǎn)換方法來(lái)存儲(chǔ)自己想要的數(shù)據(jù)。regionprops函數(shù)的擴(kuò)展思路在regionprops函數(shù)的基礎(chǔ)上,你可以使用它提供的基本數(shù)據(jù)來(lái)擴(kuò)展它的功能,比如我就將區(qū)域的曲率數(shù)據(jù)和骨架數(shù)據(jù)作為它的另外屬性值來(lái)開發(fā),從而希望它能用來(lái)做更細(xì)致的特征提取。圖像處理函數(shù)詳解——padarray功能:填充圖像或填充數(shù)組。用法:B=padarray(A,padsize,padval,direction)A為輸入圖像,B為填充后的圖像,padsize給出了給出了填充的行數(shù)和列數(shù),通常用[rc]來(lái)表示。padval和direction分別表示填充方法和方向。它們的具體值和描述如下:padval:'symmetric'表示圖像大小通過(guò)圍繞邊界進(jìn)行鏡像反射來(lái)擴(kuò)展;'replicate'表示圖像大小通過(guò)復(fù)制外邊界中的值來(lái)擴(kuò)展;'circular'圖像大小通過(guò)將圖像看成是一個(gè)二維周期函數(shù)的一個(gè)周期來(lái)進(jìn)行擴(kuò)展。direction:'pre'表示在每一維的第一個(gè)元素前填充;'post'表示在每一維的最后一個(gè)元素后填充;'both'表示在每一維的第一個(gè)元素前和最后一個(gè)元素后填充,此項(xiàng)為默認(rèn)值。若參量中不包括direction,則默認(rèn)值為'both'。若參量中不包含padval,則默認(rèn)用零來(lái)填充。若參量中不包括任何參數(shù),則默認(rèn)填充為零且方向?yàn)?both'。在計(jì)算結(jié)束時(shí),圖像會(huì)被修剪成原始大小。舉例:A=[12;34];B=padarray(A,[32],'replicate','post')圖像處理函數(shù)詳解——nlfilter功能:用來(lái)執(zhí)行通用的滑動(dòng)鄰域操作。用法:B=nlfilter(A,[mn],fun)B=nlfilter(A,[mn],fun,P1,P2,...)B=nlfilter(A,'indexed',...)B=nlfilter(A,[mn],fun)表示對(duì)圖像A的每一個(gè)m*n滑塊應(yīng)用函數(shù)fun。fun函數(shù)必須接受m*n塊作為輸入,并返回一個(gè)標(biāo)量y,形如:c=fun(x)c為m*n塊x的中心像素點(diǎn)的輸入值。例子:B=nlfilter(A,[33],@myfun);其中myfun是以m文件如下:functionscalar=myfun(x)scalar=median(x(:));圖像處理函數(shù)詳解——montage功能:在同一時(shí)間顯示多幀圖像中的所有幀。用法:montage(I)montage(BW)montage(X,map)montage(RGB)h=montage(...)montage(I)——顯示灰度圖像I共k幀,I為m*n*1*k的數(shù)組montage(BW)——顯示二值圖像I共k幀,I為m*n*1*k的數(shù)組montage(X,map)——顯示索引圖像I共k幀,色圖由map指定為所有的幀圖像的色圖,X為m*n*1*k的數(shù)組montage(RGB)——顯示真彩色圖像GRB共k幀,RGB為m*n*3*k的數(shù)組例子:mri=uint8(zeros(128,128,1,27));forframe=1:27[mri(:,:,:,frame),map]=imread('mri.tif',frame);%把每一幀讀入內(nèi)存中endmontage(mri,map);函數(shù)詳解——mat2gray功能:將矩陣轉(zhuǎn)化為灰度圖像。用法:I=mat2gray(A,[aminamax])把一個(gè)double類的任意數(shù)組轉(zhuǎn)換成取值范圍為[01]的亮度圖像。其中圖像I的取值范圍也在0(黑色)到1(白色)之間。參數(shù)amin和amax表示將A中小于amin的值轉(zhuǎn)換為0,將A中大于amax的值轉(zhuǎn)換為1。I=mat2gray(A)將矩陣A中實(shí)際最小值和最大值分別賦給amin和amax。舉例:I=imread('rice.png');J=filter2(fspecial('sobel'),I);K=mat2gray(J);imshow(I),figure,imshow(K)圖像處理函數(shù)詳解——imclose功能:對(duì)圖像實(shí)現(xiàn)閉運(yùn)算,閉運(yùn)算也能平滑圖像的輪廓,但與開運(yùn)算相反,它一般融合窄的缺口和細(xì)長(zhǎng)的彎口,去掉小洞,填補(bǔ)輪廓上的縫隙。用法:IM2=imclose(IM,SE)IM2=imclose(IM,NHOOD)用法和imopen相同,請(qǐng)?jiān)诒菊搲檎?!例子:originalBW=imread('circles.png');se=strel('disk',10);closeBW=imclose(originalBW,se);imview(closeBW)圖像處理函數(shù)詳解——imopen功能:對(duì)圖像實(shí)現(xiàn)開運(yùn)算,開運(yùn)算一般能平滑圖像的輪廓,消弱狹窄的部分,去掉細(xì)的突出。用法:IM2=imopen(IM,SE)IM2=imopen(IM,NHOOD)IM2=imopen(IM,SE)用結(jié)構(gòu)元素SE實(shí)現(xiàn)灰度圖像或二值圖像的IM的形態(tài)開運(yùn)算。SE可以是單個(gè)結(jié)構(gòu)元素對(duì)象或者結(jié)構(gòu)元素對(duì)象數(shù)組。IM2=imopen(IM,NHOOD)用結(jié)構(gòu)元素strel(NHOOD)執(zhí)行開運(yùn)算。例子:I=imread('snowflakes.png');se=strel('disk',5);I_opened=imopen(I,se);imview(I_opened,[])圖像處理函數(shù)詳解——imerode功能:對(duì)圖像實(shí)現(xiàn)腐蝕操作,即膨脹操作的反操作。用法:IM2=imerode(IM,SE)IM2=imerode(IM,NHOOD)IM2=imerode(IM,SE,PACKOPT,M)IM2=imerode(...,PADOPT)IM2=imerode(IM,SE)腐蝕灰度,二值,壓縮二值圖像IM,返回IM2。參數(shù)SE為由strel函數(shù)返回的結(jié)構(gòu)元素或者結(jié)構(gòu)元素對(duì)象組。IM2=imerode(IM,NHOOD)腐蝕圖像IM,這里NHOOD是定義結(jié)構(gòu)元素鄰域0和1的矩陣。IM2=imerode(...,PADOPT)指出輸出圖像的大小(是否與輸入圖像大小一致)。例子:originalBW=imread('circles.png');se=strel('disk',11);erodedBW=imerode(originalBW,se);imview(originalBW),imview(erodedBW)圖像處理函數(shù)詳解——imdilate功能:對(duì)圖像實(shí)現(xiàn)膨脹操作。用法:IM2=imdilate(IM,SE)IM2=imdilate(IM,NHOOD)IM2=imdilate(IM,SE,PACKOPT)IM2=imdilate(...,PADOPT)IM2=imdilate(IM,SE)膨脹灰度,二值,壓縮二值圖像IM,返回IM2。參數(shù)SE為由strel函數(shù)返回的結(jié)構(gòu)元素或者結(jié)構(gòu)元素對(duì)象組。IM2=imdilate(IM,NHOOD)膨脹圖像IM,這里NHOOD是定義結(jié)構(gòu)元素鄰域0和1的矩陣。IM2=imdilate(IM,SE,PACKOPT)定義IM是否是一個(gè)壓縮的二值圖像。IM2=imdilate(...,PADOPT)指出輸出圖像的大小。例子:I=imread('cameraman.tif');se=strel('ball',5,5);I2=imdilate(I,se);imshow(I),title('Original')figure,imshow(I2),title('Dilated')圖像處理函數(shù)詳解——imresize功能:改變圖像的大小。用法:B=imresize(A,m)B=imresize(A,m,method)B=imresize(A,[mrowsncols],method)B=imresize(...,method,n)B=imresize(...,method,h)imrersize函數(shù)使用由參數(shù)method指定的插值運(yùn)算來(lái)改變圖像的大小。method的幾種可選值:'nearest'(默認(rèn)值)最近鄰插值'bilinear'雙線性插值'bicubic'雙三次插值B=imresize(A,m)表示把圖像A放大m倍B=imresize(...,method,h)中的h可以是任意一個(gè)FIR濾波器(h通常由函數(shù)ftrans2、fwind1、fwind2、或fsamp2等生成的二維FIR濾波器)。例子:I=imread('circuit.tif');J=imresize(I,1.25);%使用默認(rèn)的最近鄰插值法放大圖像1.25倍imshow(I)figure,imshow(J)圖像處理函數(shù)詳解——imnoise功能:模仿噪聲信息,相當(dāng)于圖像的相加運(yùn)算。用法:J=imnoise(I,type)J=imnoise(I,type,parameters)參數(shù)Type對(duì)應(yīng)的噪聲類型如下:'gaussian'高斯白噪聲'localvar'0均值白噪聲'poisson'泊松噪聲'salt&pepper'鹽椒噪聲'speckle'乘性噪聲例子:I=imread('eight.tif');J=imnoise(I,'salt&pepper',0.02);%密度0.02的鹽椒噪聲imshow(I)figure,imshow(J)圖像處理函數(shù)詳解——imhist功能:顯示圖像的直方圖。輸入數(shù)據(jù)類型可以是無(wú)符號(hào)8位、16位、有符號(hào)16位、單精浮點(diǎn)、字符型、邏輯型等數(shù)據(jù)。用法:imhist(I,n)計(jì)算和顯示圖像I的直方圖,n為指定的灰度級(jí)數(shù)目,默認(rèn)為256。如果I是二值圖像,那么n僅有兩個(gè)值。imhist(X,map)計(jì)算和顯示索引圖像x的直方圖,map為調(diào)色板。[counts,x]=imhist(...)返回直方圖數(shù)據(jù)向量counts或相應(yīng)的色彩值向量x。舉例:I=imread('rice.tif')imshow(I)figure,imhist(I)圖像處理函數(shù)詳解——imfinfo功能:獲取圖像文件的信息用法:info=imfinfo(filename,fmt)info=imfinfo(filename)參數(shù)fmt對(duì)應(yīng)于圖像處理工具箱中所有支持的圖像文件格式(如'bmp','jpg'等等)例子:info=imfinfo('canoe.tif')info=Filename:'canoe.tif'FileModDate:'25-Oct-199622:10:39'FileSize:69708Format:'tif'FormatVersion:[]Width:346Height:207BitDepth:8ColorType:'indexed'FormatSignature:[7373420]ByteOrder:'little-endian'NewSubfileType:0BitsPerSample:8Compression:'PackBits'PhotometricInterpretation:'RGBPalette'StripOffsets:[9x1double]SamplesPerPixel:1RowsPerStrip:23StripByteCounts:[9x1double]XResolution:72YResolution:72ResolutionUnit:'Inch'Colormap:[256x3double]PlanarConfiguration:'Chunky'TileWidth:[]TileLength:[]TileOffsets:[]TileByteCounts:[]Orientation:1FillOrder:1GrayResponseUnit:0.0100MaxSampleValue:255MinSampleValue:0Thresholding:1圖像處理函數(shù)詳解——imcomplement功能:對(duì)圖像進(jìn)行求反運(yùn)算。用法:IM2=imcomplement(IM)計(jì)算圖像IM的負(fù)片。圖像IM可以是二值圖像、灰度圖像、或者RGB圖像。IM2和IM類型相同。例子:X=uint8([2551075;44225100]);X2=imcomplement(X)X2=024518021130155bw=imread('text.png');bw2=imcomplement(bw);subplot(1,2,1),imshow(bw)subplot(1,2,2),imshow(bw2)I=imread('glass.png');J=imcomplement(I);imshow(I),figure,imshow(J)圖像處理函數(shù)詳解——imapprox功能:減少索引圖像的色彩數(shù),能夠指定新色圖的色彩數(shù)。即對(duì)索引圖像進(jìn)行近似處理。用法:[Y,newmap]=imapprox(X,map,n)[Y,newmap]=imapprox(X,map,tol)Y=imapprox(X,map,newmap)[...]=imapprox(...,dither_option)[Y,newmap]=imapprox(X,map,n)表示把索引圖像和色圖map進(jìn)行最小值量化逼近。函數(shù)返回索引圖像和新的色圖newmap,色圖至多有n種色彩。[Y,newmap]=imapprox(X,map,tol)表示把索引圖像和色圖map進(jìn)行均衡量化逼近。新色圖newmap至多有(floor(1/tol)+1)^3種色彩,tol的范圍必須為[0,1.0]。例子:[X,map]=imread('trees.tif');[Y,newmap]=imapprox(X,map,16);imview(Y,newmap)圖像處理函數(shù)詳解——imadjust功能:調(diào)節(jié)灰度圖像的亮度或彩色圖像的顏色矩陣。用法:J=imadjust(I,[low_in;high_in],[low_out;high_out],gamma)將圖像I中的亮度值映射到J中的新值,即將low_in至hige_in之間的值映射到low_out至high_out之間的值。low_in以下與high_in以上的值被剪切掉了,也就是說(shuō),low_in以下的值映射到low_out,high_in以上的值映射到high_out。它們都可以使用空的矩陣[],默認(rèn)值是[01]。newmap=imadjust(map,[low_inhigh_in],[low_outhigh_out],gamma)調(diào)整索引色圖像的調(diào)色板map。RGB2=imadjust(RGB1,[low_inhigh_in],[low_outhigh_out],gamma)對(duì)RGB圖像1的紅、綠、藍(lán)調(diào)色板分別進(jìn)行調(diào)整。隨著顏色矩陣的調(diào)整,每一個(gè)調(diào)色板都有唯一的映射值。參數(shù)gamma指定了曲線的形狀,該曲線用來(lái)映射I的亮度值。如果gamma小于1,映射被加權(quán)到更高的輸出值。如果gamma大于1,映射被加權(quán)到更低的輸出值。如果省略了函數(shù)的參量,則gamma默認(rèn)為1(線性映射)。舉例:調(diào)整灰度圖像:K=imadjust(I,[0.30.7],[]);figure,imshow(K)調(diào)整RGB圖像:RGB1=imread('football.jpg');RGB2=imadjust(RGB1,[.2.30;.6.71],[]);imshow(RGB1),figure,imshow(RGB2)圖像處理函數(shù)詳解——imadd功能:實(shí)現(xiàn)圖像相加運(yùn)算。用法:Z=imadd(X,Y)例子:I=imread('rice.png');J=imread('cameraman.tif');K=imadd(I,J,'uint16');%轉(zhuǎn)換數(shù)據(jù)類型,然后將圖像相加imshow(K,[])圖像處理函數(shù)詳解——im2uint8功能:將圖像轉(zhuǎn)換為8位無(wú)符號(hào)整型。也可將輸出值限定在[0255]內(nèi)。用法:I2=im2uint8(I)RGB2=im2uint8(RGB)I=im2uint8(BW)X2=im2uint8(X,'indexed')舉例:I=reshape(uint8(linspace(0,255,255)),[55])I2=im2uint8(I)圖像處理函數(shù)詳解——im2bw功能:通過(guò)設(shè)定亮度將閾值灰度、真彩、索引圖像轉(zhuǎn)換為二值圖像。用法:BW=im2bw(I,level)BW=im2bw(X,map,level)BW=im2bw(RGB,level)分別將灰度圖像、索引圖像、真彩色圖像轉(zhuǎn)換為二值圖像。Level是歸一化的閾值,值域?yàn)閇0,1]。Level可以由函數(shù)graythresh(I)來(lái)計(jì)算。例子:loadtreesBW=im2bw(X,map,0.4);imview(X,map),imview(BW)圖像處理函數(shù)詳解——histeq功能:直方圖均衡化。用法:J=histeq(I,hgram)將原始圖像I的直方圖變成用戶指定的向量hgram。hgram中的各元素的值域?yàn)閇0,1]。J=histeq(I,n)指定直方圖均衡后的灰度級(jí)數(shù)n,默認(rèn)值為64。[J,T]=histeq(I,...)返回從能將圖像I的灰度直方圖變換成圖像J的直方圖變換T。newmap=histeq(X,map,hgram)newmap=histeq(X,map)[newmap,T]=histeq(X,...)這三個(gè)是針對(duì)索引圖像調(diào)色板的直方圖均衡化,用法和灰度圖像的一樣。舉例:I=imread('tire.tif');J=histeq(I);imshow(I)figure,imshow(J)圖像處理函數(shù)詳解——dither功能:可以把真彩色圖像裝換成索引圖像或者把灰度圖像轉(zhuǎn)換為二值圖像。用法:X=dither(RGB,map)BW=dither(I)X=dither(RGB,map,Qm,Qe)X=dither(RGB,map)表示把真彩色圖像RGB按指定的色圖map抖動(dòng)成索引圖像X,但map不能超過(guò)65536種顏色。BW=dither(I)表示把灰度圖像I抖動(dòng)成二值圖像BWX=dither(RGB,map,Qm,Qe)Qm表示沿每個(gè)顏色軸反轉(zhuǎn)顏色圖的量化的位數(shù),Qe表示顏色空間計(jì)算誤差的量化位數(shù)。如果Qe<Qm,則不進(jìn)行抖動(dòng)操作。默認(rèn)值Qe=5,Qm=8例子:I=imread('cameraman.tif');BW=dither(I);imview(BW)圖像處理函數(shù)詳解——conv2功能:是二維卷積運(yùn)算函數(shù)(與convmtx2相似)。如果a和b是兩個(gè)離散變量n1和n2的函數(shù),則關(guān)于a和b的二維卷積運(yùn)算數(shù)學(xué)公式如下:用法:C=conv2(A,B)C=conv2(hcol,hrow,A)C=conv2(...,'shape')C=conv2(A,B)計(jì)算數(shù)組A和B的卷積。如果一個(gè)數(shù)組描述了一個(gè)二維FIR濾波器,則另一個(gè)數(shù)組被二維濾波。當(dāng)A的大小為[ma,na],B的大小為[mb,nb]時(shí),C的大小為[ma+mb-1,mb+nb-1]?!畇hape’見(jiàn)下表參數(shù)值含義‘full’默認(rèn)值,返回全部二維卷積值?!畇ame’返回與A大小相同卷積值的中間部分‘valid’當(dāng)all(size(A)>=size(B)),C的大小為[ma+mb-1,mb+nb-1];否則,C返回[]。在n維卷積運(yùn)算中,C的大小為max(size(A)-size(B)+1,0)例子:s=[121;000;-1-2-1];A=zeros(10);A(3:7,3:7)=ones(5);H=conv2(A,s);mesh(H)圖像處理函數(shù)詳解——colfilt功能:以列方法進(jìn)行鄰域處理,也可執(zhí)行常規(guī)非線性濾波(自己理解的)。用法:B=colfilt(A,[mn],block_type,fun)該函數(shù)生成了一幅圖像A,在A中,每一列對(duì)應(yīng)于其中心位于圖像內(nèi)某個(gè)位置的鄰域所包圍的像素。然后將函數(shù)應(yīng)用于該矩陣中。[mn]表示大小為m行n列的鄰域。block_type表示了一個(gè)字符串,包括'distinct','sliding'兩種,其中'sliding'是在輸入圖像中逐個(gè)像素地滑動(dòng)該m乘n的區(qū)域。fun表示引用了一個(gè)函數(shù)進(jìn)行處理,函數(shù)返回值的大小必須和原圖像大小相同。舉例:I=imread('tire.tif');imshow(I)I2=uint8(colfilt(I,[55],'sliding',@mean));figure,imshow(I2)圖像處理函數(shù)詳解——bwperim功能:查找二值圖像的邊緣。用法:BW2=bwperim(BW1)BW2=bwperim(BW1,conn)BW2=bwperim(BW1,conn)表示從輸入圖像BW1中返回只包括對(duì)象邊緣像素點(diǎn)的圖像。conn的定義值如下:維數(shù)參數(shù)值說(shuō)明對(duì)二維44鄰域88鄰域?qū)θS66鄰域1818鄰域2626鄰域例子:BW1=imread('circbw.tif');BW2=bwperim(BW1,8);imshow(BW1)figure,imshow(BW2)圖像處理函數(shù)詳解——bwlabel功能:對(duì)連通對(duì)象進(jìn)行標(biāo)注,bwlabel主要對(duì)二維二值圖像中各個(gè)分離部分進(jìn)行標(biāo)注(多維用bwlabeln,用法類似)。用法:L=bwlabel(BW,n)[L,num]=bwlabel(BW,n)L=bwlabel(BW,n)表示返回和BW相同大小的數(shù)組L。L中包含了連通對(duì)象的標(biāo)注。參數(shù)n為4或8,分別對(duì)應(yīng)4鄰域和8鄰域,默認(rèn)值為8。[L,num]=bwlabel(BW,n)返回連通數(shù)num圖像處理函數(shù)詳解——bwareaopen功能:用于從對(duì)象中移除小對(duì)象。用法:BW2=bwareaopen(BW,P)BW2=bwareaopen(BW,P,CONN)BW2=bwareaopen(BW,P,CONN)從二值圖像中移除所有小于P的連通對(duì)象。CONN對(duì)應(yīng)鄰域方法,默認(rèn)為8。例子:originalBW=imread('text.png');imview(originalBW)bwAreaOpenBW=bwareaopen(originalBW,50);imview(bwAreaOpenBW)21.dct2功能:進(jìn)行二維離散余弦變換.語(yǔ)法:B=dct2(A)B=dct2(A,m,n)B=dct2(A,[mn])舉例RGB=imread('autumn.tif');I=rgb2gray(RGB);J=dct2(I);imshow(log(abs(J)),[]),colormap(jet(64)),colorbarJ(abs(J)<10)=0;K=idct2(J)/255;imshow(K)相關(guān)命令:fft2,idct2,ifft222.dctmtx功能:MATLAB高級(jí)應(yīng)用——圖形及影

溫馨提示

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