matlab图像处理命令(二)
轉(zhuǎn)自:http://blog.163.com/crazyzcs@126/blog/static/1297420502010229104452729/ (非原處)
?
圖像增強(qiáng)
1. 直方圖均衡化的 Matlab 實(shí)現(xiàn)
1.1 imhist 函數(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.2 imcontour 函數(shù)
功能:顯示圖像的等灰度值圖
格式:imcontour(I,n),imcontour(I,v)
說(shuō)明:n 為灰度級(jí)的個(gè)數(shù),v 是有用戶指定所選的等灰度級(jí)向量。
1.3 imadjust 函數(shù)
功能:通過(guò)直方圖變換調(diào)整對(duì)比度
格式:J=imadjust(I,[low high],[bottom top],gamma)
??????? newmap=imadjust(map,[low high],[bottom top],gamma)
說(shuō)明:J=imadjust(I,[low high],[bottom top],gamma) 其中,gamma 為校正量r,[low high] 為原圖像中要變換的灰度范圍,[bottom top]
指定了變換后的灰度范圍;newmap=imadjust(map,[low high],[bottom top],gamma) 調(diào)整索引色圖像的調(diào)色板 map 。此時(shí)若 [low high] 和
[bottom top] 都為2×3的矩陣,則分別調(diào)整 R、G、B 3個(gè)分量。
1.4 histeq 函數(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.1 conv2 函數(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.2 conv 函數(shù)
功能:計(jì)算多維卷積
格式:與 conv2 函數(shù)相同
3.3 filter2函數(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.4 fspecial 函數(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.1 imfilter函數(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ì)值 ABS(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值
?? --------------------------------------------
??? 顏色??? R?? G?? B????? 顏色??? R?? G?? B
?? --------------------------------------------
???? 黑???? 0?? 0?? 1????? 洋紅??? 1?? 0?? 1
???? 白???? 1?? 1?? 1????? 青藍(lán)??? 0?? 1?? 1
???? 紅???? 1?? 0?? 0????? 天藍(lán) 0.67 0?? 1
???? 綠???? 0?? 1?? 0????? 橘黃??? 1 0.5 0
???? 藍(lán)???? 0?? 0?? 1????? 深紅?? 0.5 0?? 0
???? 黃???? 1?? 1?? 0?????? 灰??? 0.5 0.5 0.5??????
?? --------------------------------------------
???????? 產(chǎn)生標(biāo)準(zhǔn)調(diào)色板的函數(shù)
?? -------------------------------------------------
??? 函數(shù)名?????? 調(diào)色板
?? -------------------------------------------------
???? Hsv?????? 色彩飽和度,以紅色開(kāi)始,并以紅色結(jié)束
???? Hot?????? 黑色-紅色-黃色-白色
???? Cool????? 青藍(lán)和洋紅的色度
???? Pink????? 粉紅的色度
???? Gray????? 線型灰度
???? Bone????? 帶藍(lán)色的灰度
???? Jet??????? Hsv的一種變形,以藍(lán)色開(kāi)始,以藍(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)色板也必須相同。
?? 可參考cat()函數(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. 圖像文件的讀寫(xiě)和查詢
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 圖形圖像文件的寫(xiě)入
?? 使用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 灰度圖像及其顯示
?? Matlab 7.0 中,要顯示一副灰度圖像,可以調(diào)用函數(shù) imshow 或 imagesc (即
imagescale,圖像縮放函數(shù))
?? (1) imshow 函數(shù)顯示灰度圖像
??? 使用 imshow(I)??? 或使用明確指定的灰度級(jí)書(shū)目: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è)值(顏色)。灰度范圍中間的值則線型對(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.3 RGB 圖像及其顯示
?? (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)
?? 在 Matlab 7.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,[1 0 0;0 0 1])??
5.5 直接從磁盤(pán)顯示圖像
?? 可使用一下命令直接進(jìn)行圖像文件的顯示:
??????? imshow filename
?? 其中,filename 為要顯示的圖像文件的文件名。
?? 如果圖像是多幀的,那么 imshow 將僅顯示第一幀。但需注意,在使用這種方式時(shí),圖像
數(shù)據(jù)沒(méi)有保存在Matlab 7.0 工作平臺(tái)。如果希望將圖像裝入工作臺(tái)中,需使用 getimage 函
數(shù),從當(dāng)前的句柄圖形圖像對(duì)象中獲取圖像數(shù)據(jù),
?? 命令形式為: rgb = getimage;
bwlabel
功能:
標(biāo)注二進(jìn)制圖像中已連接的部分。
L = bwlabel(BW,n)
[L,num] = bwlabel(BW,n)
isbw
功能:
判斷是否為二進(jìn)制圖像。
語(yǔ)法:
flag = isbw(A)
相關(guān)命令:
isind, isgray, isrgb
74.isgray
功能:
判斷是否為灰度圖像。
語(yǔ)法:
flag = isgray(A)
相關(guān)命令:
isbw, isind, isrgb
11.bwselect
功能:
在二進(jìn)制圖像中選擇對(duì)象。
語(yǔ)法:
BW2 = bwselect(BW1,c,r,n)
BW2 = bwselect(BW1,n)
[BW2,idx] = bwselect(...)
舉例
BW1 = imread('text.tif');
c = [16 90 144];
r = [85 197 247];
BW2 = bwselect(BW1,c,r,4);
imshow(BW1)
figure, imshow(BW2)
47.im2bw
功能:
轉(zhuǎn)換圖像為二進(jìn)制圖像。
語(yǔ)法:
BW = im2bw(I,level)
BW = im2bw(X,map,level)
BW = im2bw(RGB,level)
舉例
load trees
BW = im2bw(X,map,0.4);
imshow(X,map)
轉(zhuǎn)自:http://xiaozu.renren.com/xiaozu/106455/333344685
1、圖像的變換
① fft2:fft2函數(shù)用于數(shù)字圖像的二維傅立葉變換,如:i=imread('104_8.tif');
j=fft2(i);
②ifft2::ifft2函數(shù)用于數(shù)字圖像的二維傅立葉反變換,如:
?i=imread('104_8.tif');
?j=fft2(i);
k=ifft2(j);
2、模擬噪聲生成函數(shù)和預(yù)定義濾波器
① imnoise:用于對(duì)圖像生成模擬噪聲,如:
?i=imread('104_8.tif');
?j=imnoise(i,'gaussian',0,0.02);%模擬高斯噪聲
② fspecial:用于產(chǎn)生預(yù)定義濾波器,如:
h=fspecial('sobel');%sobel水平邊緣增強(qiáng)濾波器
h=fspecial('gaussian');%高斯低通濾波器
h=fspecial('laplacian');%拉普拉斯濾波器
h=fspecial('log');%高斯拉普拉斯(LoG)濾波器
h=fspecial('average');%均值濾波器
?2、圖像的增強(qiáng)
①直方圖:imhist函數(shù)用于數(shù)字圖像的直方圖顯示,如:
i=imread('104_8.tif');
imhist(i);
②直方圖均化:histeq函數(shù)用于數(shù)字圖像的直方圖均化,如:
i=imread('104_8.tif');
j=histeq(i);
③對(duì)比度調(diào)整:imadjust函數(shù)用于數(shù)字圖像的對(duì)比度調(diào)整,如:i=imread('104_8.tif');
j=imadjust(i,[0.3,0.7],[]);
④對(duì)數(shù)變換:log函數(shù)用于數(shù)字圖像的對(duì)數(shù)變換,如:
i=imread('104_8.tif');
j=double(i);
k=log(j);
⑤基于卷積的圖像濾波函數(shù):filter2函數(shù)用于圖像濾波,如:i=imread('104_8.tif');
h=[1,2,1;0,0,0;-1,-2,-1];
j=filter2(h,i);
⑥線性濾波:利用二維卷積conv2濾波, 如:
i=imread('104_8.tif');
h=[1,1,1;1,1,1;1,1,1];
h=h/9;
j=conv2(i,h);
⑦中值濾波:medfilt2函數(shù)用于圖像的中值濾波,如:
i=imread('104_8.tif');
j=medfilt2(i);
⑧銳化
(1)利用Sobel算子銳化圖像, 如:
i=imread('104_8.tif');
h=[1,2,1;0,0,0;-1,-2,-1];%Sobel算子
j=filter2(h,i);
(2)利用拉氏算子銳化圖像, 如:
i=imread('104_8.tif');
j=double(i);
h=[0,1,0;1,-4,0;0,1,0];%拉氏算子
k=conv2(j,h,'same');
m=j-k;
?3、圖像邊緣檢測(cè)
①sobel算子 如:
i=imread('104_8.tif');
j = edge(i,'sobel',thresh)
?②prewitt算子 如:
i=imread('104_8.tif');
j = edge(i,'prewitt',thresh)
③roberts算子? 如:
i=imread('104_8.tif');
j = edge(i,'roberts',thresh)
④log算子? 如:
i=imread('104_8.tif');
j = edge(i,'log',thresh)
⑤canny算子 如:
i=imread('104_8.tif');
j = edge(i,'canny',thresh)
⑥Zero-Cross算子 如:
i=imread('104_8.tif');
j = edge(i,'zerocross',thresh)
?4、形態(tài)學(xué)圖像處理
①膨脹:是在二值化圖像中“加長(zhǎng)”或“變粗”的操作,函數(shù)imdilate執(zhí)行膨脹運(yùn)算,如:
a=imread('104_7.tif'); %輸入二值圖像
b=[0 1 0;1 1 1;0 1 0];
c=imdilate(a,b);
②腐蝕:函數(shù)imerode執(zhí)行腐蝕,如:
a=imread('104_7.tif'); %輸入二值圖像
b=strel('disk',1);
c=imerode(a,b);
③開(kāi)運(yùn)算:先腐蝕后膨脹稱為開(kāi)運(yùn)算,用imopen來(lái)實(shí)現(xiàn),如:
?a=imread('104_8.tif');
b=strel('square',2);
c=imopen(a,b);
④閉運(yùn)算:先膨脹后腐蝕稱為閉運(yùn)算,用imclose來(lái)實(shí)現(xiàn),如:
?a=imread('104_8.tif');
b=strel('square',2);
c=imclose(a,b);
?===========================================================
?Matlab 圖像處理相關(guān)函數(shù)命令大全
?一、通用函數(shù):
colorbar? 顯示彩色條
語(yǔ)法:colorbar \ colorbar('vert') \ colorbar('horiz') \ colorbar(h) \ h=colorbar(...) \ colorbar(...,'peer',axes_handle)
getimage 從坐標(biāo)軸取得圖像數(shù)據(jù)
語(yǔ)法:A=getimage(h) \ [x,y,A]=getimage(h) \ [...,A,flag]=getimage(h) \ [...]=getimage
imshow 顯示圖像
語(yǔ)法:imshow(I,n) \ imshow(I,[low high]) \ imshow(BW) \ imshow(X,map) \ imshow(RGB)\ imshow(...,display_option) \ imshow(x,y,A,...) \ imshow filename \ h=imshow(...)
montage 在矩形框中同時(shí)顯示多幅圖像
語(yǔ)法:montage(I) \ montage(BW) \ montage(X,map) \ montage(RGB) \ h=montage(...)
immovie 創(chuàng)建多幀索引圖的電影動(dòng)畫(huà)
語(yǔ)法:mov=immovie(X,map) \ mov=immovie(RGB)
subimage 在一副圖中顯示多個(gè)圖像
語(yǔ)法:subimage(X,map) \ subimage(I) \ subimage(BW) \? subimage(RGB) \ subimage(x,y,...) \ subimage(...)
truesize 調(diào)整圖像顯示尺寸
語(yǔ)法:truesize(fig,[mrows mcols]) \ truesize(fig)
warp 將圖像顯示到紋理映射表面
語(yǔ)法:warp(X,map) \ warp(I ,n) \ warp(z,...) warp(x,y,z,...) \? h=warp(...)
zoom 縮放圖像
語(yǔ)法:zoom on \ zoom off \ zoom out \ zoom reset \ zoom \ zoom xon \ zoom yon\ zoom(factor) \ zoom(fig,option)
?二、圖像文件I/O函數(shù)命令
imfinfo? 返回圖形圖像文件信息
語(yǔ)法:info=imfinfo(filename,fmt) \ info=imfinfo(filename)
imread? 從圖像文件中讀取(載入)圖像
語(yǔ)法:A=imread(filename,fmt) \ [X,map]=imread(filename,fmt) \ [...]=imread(filename) \ [...]=imread(URL,...) \ [...]=imread(...,idx) (CUR,ICO,and TIFF only) \ [...]=imread(...,'frames',idx) (GIF only) \ [...]=imread(...,ref) (HDF only) \ [...]=imread(...,'BackgroundColor',BG) (PNG only) \ [A,map,alpha] =imread(...) (ICO,CUR,PNG only)
imwrite? 把圖像寫(xiě)入(保存)圖像文件中
語(yǔ)法:imwrite(A,filename,fmt) \ imwrite(X,map,filename,fmt) \ imwrite(...,filename) \ imwite(...,Param1,Val1,Param2,Val2...)
imcrop? 剪切圖像
語(yǔ)法:I2=imcrop(I) \ X2=imcrop(X,map) \ RGB2=imcrop(RGB) \ I2=imcrop(I,rect) \ X2=imcrop(RGB,rect) \ [...]=imcrop(x,y,...) \ [A,rect]=imcrop(...) \ [x,y,A,rect]=imcrop(...)
imresize? 改變圖像大小
語(yǔ)法:B=imresize(A,m,method)
imrotate? 旋轉(zhuǎn)圖像
語(yǔ)法:B=imrotate(A,angle,method) \ B=imrotate(A,angle,method,'crop')
?三、像素和統(tǒng)計(jì)處理函數(shù)
corr2? 計(jì)算兩個(gè)矩形的二維相關(guān)系數(shù)
語(yǔ)法:r=corr2(A,B)
imcontour 創(chuàng)建圖像數(shù)據(jù)的輪廓圖
語(yǔ)法:imcontour(I,n) \ imcontour(I,v) \ imcontour(x,y,...) \ imcontour(...,LineSpec) \ [C,h] =imcontour(...)
imfeature? 計(jì)算圖像區(qū)域的特征尺寸
語(yǔ)法:stats=imfeature(L,measurements) \ stats=imfeature(L,measurements,n)
imbist? 顯示圖像數(shù)據(jù)的柱狀圖
impixel 確定像素顏色值
語(yǔ)法:P=impixel(I) \ P=impixel(X,map) \ P=impixel(RGB) \ P=impixel(I,c,r) \ P=impixel(X,map,c,r) \ P=impixel(RGB,c,r) \ [c,r,P]=impixel(...) \ P=impixel(x,y,I,xi,yi) \ P=impixel(x,y,RGB,xi,yi) \ P=impixel(x,y,X,map,xi,yi) \
[xi,yi,P]=impixel(x,y,...)
improfile 沿線段計(jì)算剖面圖的像素值
語(yǔ)法:c=improfile \ c=improfile(n) \ c=improfile(I,xi,yi) \ c=improfile(I,xi,yi,n) \? [cx,cy,c]=improfile(...)? \ [cx,cy,c,xi,yi]=improfile(...) \ [...]=improfile(x,y,I,xi,yi) \? [...]=improfile(x,y,I,xi,yi,n) \ [...]=improfile(...,method)
mean2 計(jì)算矩陣元素的平均值
語(yǔ)法:B=mean2(A)
pixval? 顯示圖像像素信息
語(yǔ)法:pixval on
std2 計(jì)算矩陣元素的標(biāo)準(zhǔn)偏移
語(yǔ)法:b=std2(A)
四、圖像分析函數(shù):
edge 圖像邊緣檢測(cè)
語(yǔ)法:BW=edge(I,'sobel') \ BW=edge(I,'sobel',thresh) \ BW=edge(I,'sobel',thresh,direction) \ [BW,thresh]=edge(I,'sobel',...) \ BW=edge(I,'prewitt') \ BW=edge(I,'prewitt',thresh) \ BW=edge(I,'prewitt',thresh,direction) \
[BW,thresh]=edge(I,'prewitt',...) \? BW=edge(I,'roberts') \ BW=edge(I,'roberts',thresh) \ [BW,thresh]=edge(I,'roberts',...) \ BW=edge(I,'log') \ BW=edge(I,'log',thresh) \ BW=edge(I,'log',thresh,sigma) \ [BW,threshold]=edge(I,'log',...) \ BW=edge(I,'zerocross',thresh,h) \ [BW,thresh]=edge(I,'zerocross',...) \
BW=edge(I,'canny') \ BW=edge(I,'canny',thresh) \ BW=edge(I,'canny',thresh,sigma) \ [BW,threshold]=edge(I,'canny',...)
qtgetblk? 獲取四叉樹(shù)分解的塊值
語(yǔ)法:[vals,r,c]=qtgetblk(I,S,dim) \ [vals,idx]=qtgetblk(I,S,dim)
qtsetblk 設(shè)置四叉樹(shù)分解中的塊值
語(yǔ)法:J=qtsetblk(I,S,dim,vals)
五、圖像增強(qiáng)函數(shù)
histeq 用柱狀圖均等化增強(qiáng)對(duì)比
語(yǔ)法:J=histeq(I,hgram) \ J=histeq(I,n) \ [J,T]=histeq(I,...) \ newmap=histeq(X,map,hgram) \ newmap=histeq(X,map)
imadjust 調(diào)整圖像灰度值或顏色映像表
語(yǔ)法:J=imadjust(I,[low_in ,high_in]),[low_out ,high_out],gamma) \ newmap=imadjust(map,[low_in ,high_in]),[low_out ,high_out],gamma) \ RGB2=imadjust(RGB1,...)
imnoise 增強(qiáng)圖像的渲染效果
語(yǔ)法:J=imnoise(I,type) \ J=imnoise(I,type,parameters)
medfilt2 進(jìn)行二維中值過(guò)濾
語(yǔ)法:B=medfilt2(A,[m n]) \ B=medfilt2(A) \ B=medfilt2(A,'indexed',...)
ordfilt2 進(jìn)行二維統(tǒng)計(jì)順序過(guò)濾
語(yǔ)法:B=ordfilt2(A,order,domain) \ B=ordfilt2(A,order,domain,S) \ B=ordfilt2(...,padopt)
wiener2 進(jìn)行二維適應(yīng)性去噪過(guò)濾處理
語(yǔ)法:J=wiener2(I,[m? n],noise) \ [J,noise]=wiener2(I,[m n])
六、線性濾波函數(shù)
conv2 進(jìn)行二維卷積操作
語(yǔ)法:C=conv2(A,B) \ C=conv2(hcol,hrow,A) \ C=conv2(...,'shape')
convmtx2 計(jì)算二維卷積矩陣
語(yǔ)法:T=convmtx2(H,m,n) \ T=convmtx2(H,[m n])
convn 計(jì)算n維卷積
語(yǔ)法:C=convn(A,B) \ C=convn(A,B,'shape')
filter2 進(jìn)行二維線性過(guò)濾操作
語(yǔ)法:Y=filter2(h,X) \ Y=filter2(h,X,shape)
fspecial 創(chuàng)建預(yù)定義過(guò)濾器
語(yǔ)法:h=fspecial(type) \ h=fspecial(type,parameters)
七、線性二維濾波設(shè)計(jì)函數(shù)
freqspace 確定二維頻率響應(yīng)的頻率空間
語(yǔ)法:[f1,f2]=freqspace(n) \ [f1,f2]=freqspace([m n]) \ [x1 ,y1]=freqspace(...,'meshgrid') \ f=freqspace(N) \ f=freqspace(N,'whole')
freqz2 計(jì)算二維頻率響應(yīng)
語(yǔ)法:[H,f1,f2]=freqz2(h,n1,n2) \ [H,fi,f2]]=freqz2(h,[n2,n1]) \ [H,fi,f2]]=freqz2(h,f1,f2]) \ [H,fi,f2]]=freqz2(h) \ [...]=freqz2(h,...,[dx dy]) \ [...]=freqz2(h,...,dx) \ freqz2(...)
fsamp2 用頻率采樣法設(shè)計(jì)二維FIR過(guò)濾器
語(yǔ)法:h=fsamp2(Hd) \ h=fsamp2(f1,f2,Hd,[m n])
ftrans2 通過(guò)頻率轉(zhuǎn)換設(shè)計(jì)二維FIR過(guò)濾器
語(yǔ)法:h=ftrans2(b,t) \ h=ftrans2(b)
fwind1 用一維窗口方法設(shè)計(jì)二維FIR過(guò)濾器
語(yǔ)法:h=fwind1(Hd,win) \ h=fwind1(Hd,win1,win2) \ h=fwind1(f1,f2,Hd,...)
fwind2 用二維窗口方法設(shè)計(jì)二維FIR過(guò)濾器
語(yǔ)法:h=fwind2(Hd,win) \ h=fwind2(f1,f2,Hd,win)
八、圖像變換函數(shù)
dct2 進(jìn)行二維離散余弦變換(反余弦變換用idct2)
語(yǔ)法:B=dct2(A) \ B=dct2(A,m.n) \ B=dct2(A,[m n])
dctmtx 計(jì)算離散余弦傅立葉變換
語(yǔ)法:D=dctmtx(n)
fft2 進(jìn)行二維快速傅立葉變換(反變換用ifft2)
語(yǔ)法:Y=fft2(X) \ Y=fft2(X,m,n)
fftn 進(jìn)行n維快速傅立葉變換(反變換用ifftn)
語(yǔ)法:Y=ffn(X) \ Y=fftn(X,siz)
fftshift 快速傅立葉變換的DC組件移到光譜中心
語(yǔ)法:Y=fftshift(X) \ Y=fftshift(X,dim)
iradon 進(jìn)行反radon變換
語(yǔ)法:I=iradon(P,theta) \ I=iradon(P,theta,interp,filter,d,n) \ [I,h]=iradon(...)
phantom 產(chǎn)生一個(gè)頭部幻影圖像
語(yǔ)法:P=phantom(def,n) \ P=phantom(E,n) \ [P,E]=phantom(...)
radon 計(jì)算radon變換
語(yǔ)法:R=radon(I,theta) \ [R,xp]=radon(...)
九、邊沿和塊處理函數(shù)
bestblk 確定進(jìn)行塊操作的塊大小
語(yǔ)法:siz=bestblk([m n],k) \ [mb,nb]=bestblk([m n],k)
blkproc 實(shí)現(xiàn)圖像的顯示塊操作
語(yǔ)法:B=blkproc(A,[m n]),fun) \ B=blkproc(A,[m n],fun,P1,P2,...) \ B=blkproc(A,[m n],[mborder nborder],fun,...)
col2im 將矩陣的列重新組織到塊中
語(yǔ)法:A=col2im(B,[m n],[mm nn],block_type) \ A=col2im(B,[m n],[mm nn])
colfilt 利用列相關(guān)函數(shù)進(jìn)行邊沿操作
語(yǔ)法:B=colfilt(A,[m n],block_type,fun) \ B=colfilt(A,[m n],block_type,fun,P1,P2,...) \ B=colfilt(A,[m n],[mblock nblock],...) \ B=colfilt(A,'indexed',...)
im2col 重調(diào)圖像塊為列
語(yǔ)法:B=im2col(A,[m n],block_type) \ B=im2col(A,[m n]) \ B=im2col(A,'indexed',...)
nlfilter 進(jìn)行邊沿操作
語(yǔ)法:B=nlfilter(A,[m n],fun) \ B=nlfilter(A,[m n],fun,P1,P2,...) \ B=nlfilter(A,'indexed',...)
十、二進(jìn)制圖像操作函數(shù)
applylut 在二進(jìn)制圖像中利用lookup表進(jìn)行行邊沿操作
語(yǔ)法:A=applylut(BW,LUT)
bwarea 計(jì)算二進(jìn)制圖像對(duì)象的面積
語(yǔ)法:total=bwarea(BW)
bweuler 計(jì)算二進(jìn)制圖像的歐拉數(shù)
語(yǔ)法:eul=bweuler(BW)
bwfill 填充二進(jìn)制圖像的背景色
語(yǔ)法:BW2=bwfill(BW1,c,r,n) \ BW2=bwfill(BW1,n) \ [BW2,idx]=bwfill(...) \ BW2=bwfill(x,y,BW1,xi,yi,n) \ [x,y,BW2,idx,xi,yi]=bwfill(...) \? [BW2,idx]=bwfill(BW1,'holes',n)
bwlabel 標(biāo)注二進(jìn)制圖像中已連接的部分
語(yǔ)法:L=bwlabel(BW,n) \ [L,num]=bwlabel(BW,n)
bwmorph 提取二進(jìn)制圖像的輪廓
語(yǔ)法:BW2=bwmorph(BW1,operation) \ BW2=bwmorph(BW1,operation,n)
bwperim 計(jì)算二進(jìn)制圖像中對(duì)象的周長(zhǎng)
語(yǔ)法:BW2=bwperim(BW1) \ BW2=bwperim(BW1,CONN)
bwselect 在二進(jìn)制圖像中選擇對(duì)象
語(yǔ)法:BW2=bwselect(BW1,c,r,n) \ BW2=bwselect(BW1,n) \ [BW2,idx]=bwselect(...) \ BW2=bwselect(x,y,BW1,xi,yi,n) \ [x,y,BW2,idx,xi,yi]=bwselect(...)
dilate 放大二進(jìn)制圖像
語(yǔ)法:BW2=dilate(BW1,SE) \ BW2=dilate(BW1,SE,alg) \ BW2=dilate(BW1,SE,...,n)
erode 弱化二進(jìn)制圖像的邊界
語(yǔ)法:BW2=erode(BW1,SE) \ BW2=erode(BW1,SE,alg) \ BW2=erode(BW1,SE,...,n)
makelut 創(chuàng)建一個(gè)用于applylut函數(shù)的lookup表
語(yǔ)法:lut=makelut(fun,n) \ lut=makelut(fun,n,P1,P2,...)
十一、區(qū)域處理函數(shù)
roicolor 選擇感興趣的顏色區(qū)
語(yǔ)法:BW=roicolor(A,low,high) \ BW=rocicolor(A,v)
roifill 在圖像的任意區(qū)域中進(jìn)行平滑插補(bǔ)
語(yǔ)法:J=roifill(I,c,r) \ J=roifill(I) \ J=roifill(I,BW) \ [J,BW]=roifill(...) \ J=roifill(x,y,I,xi,yi) \ [x,y,J,BW,xi,yi]=roifill(...)
roifilt2 過(guò)濾敏感區(qū)域
語(yǔ)法:J=roifilt2(h,I,BW) \ J=roifilt2(I,BW,fun) \ J=roifilt2(I,BW,fun,P1,P2,...)
roipoly 選擇一個(gè)敏感的多邊形區(qū)域
語(yǔ)法: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(...)
十二、顏色映像處理函數(shù)
brighten 增加或降低顏色映像表的亮度
語(yǔ)法:brighten(beta) \ brighten(h,beta) \ newmap=brighten(beta) \ newmap=brighten(cmap,beta)
cmpermute 調(diào)整顏色映像表中的顏色
語(yǔ)法:[Y,newmap]=cmpermute(X,map) \ [Y,newmap]=cmpermute(X,map,index)
cmunigue 查找顏色映像表中特定的顏色及相應(yīng)的圖像
語(yǔ)法:[Y,newmap]=cmunigue(X,map) \ [Y,newmap]=cmunigue(RGB) \ [Y,newmap]=cmunique(I)
imapprox 對(duì)索引圖像進(jìn)行近似處理
語(yǔ)法:[Y,newmap]=imapprox(X,map,n) \? [Y,newmap]=imapprox(X,map,tol) \ Y=imapprox(X,map,newmap) \ [...]=imapprox(...,dither_option)
rgbplot 劃分顏色映像表
語(yǔ)法:rgbplot(cmap)
十三、顏色空間轉(zhuǎn)換函數(shù)
hsv2rgb 轉(zhuǎn)換HSV值為RGB顏色空間:M=hsv2rgb(H)
ntsc2rgb 轉(zhuǎn)換NTSC值為RGB顏色空間:rgbmap=ntsc2rgb(yiqmap) \ RGB=ntsc2rgb(YIQ)
rgb2hsv 轉(zhuǎn)換RGB值為HSV顏色空間:cmap=rgb2hsv(M)
rgb2ntsc 轉(zhuǎn)換RGB值為NTSC顏色空間:yiqmap=rgb2ntsc(rgbmap) \ YIQ=rgb2ntsc(RGB)
rgb2ycbcr 轉(zhuǎn)換RGB值為YCbCr顏色空間:ycbcrmap=rgb2ycbcr(rgbmap) \ YCBCR=rgb2ycbcr(RGB)
ycbcr2rgb 轉(zhuǎn)化YCbCr值為RGB顏色空間:rgbmap=ycbcr2rgb(ycbcrmap) \ RGB=ycbcr2rgb(YCBCR)
十四、圖像類型和類型轉(zhuǎn)換函數(shù)
dither 通過(guò)抖動(dòng)增加外觀顏色分辨率轉(zhuǎn)換圖像
語(yǔ)法:X=dither(RGB,map) \ BW=dither(I)
gray2ind 轉(zhuǎn)換灰度圖像為索引圖像
語(yǔ)法:[X,map]=gray2ind(I,n) \ [X,map]=gray2ind(BW,n)
grayslice 從灰度圖像為索引圖像
語(yǔ)法:X=grayslice(I,n) \ X=grayslice(I,v)
im2bw 轉(zhuǎn)換圖像為二進(jìn)制圖像
語(yǔ)法:BW=im2bw(I,level) \ BW=im2bw(X,map,level) \ BW=im2bw(RGB,level)
im2double 轉(zhuǎn)換圖像矩陣為雙精度型
語(yǔ)法:I2=im2double(I1) \ RGB2=im2double(RGB1) \ I=im2double(BW) \ X2=im2double(X1,'indexed')
double 轉(zhuǎn)換數(shù)據(jù)為雙精度型
語(yǔ)法:double(X)
unit8 、unit16轉(zhuǎn)換數(shù)據(jù)為8位、16位無(wú)符號(hào)整型: i=unit8(x) \ i=unit16(x)
im2unit8 轉(zhuǎn)換圖像陣列為8位無(wú)符號(hào)整型
語(yǔ)法:I2=im2unit8(I1) \ RGB2=im2unit8(RGB1) \ I=im2unit8(BW) \ X2=im2unit8(X1,'indexed')
im2unit16 轉(zhuǎn)換圖像陣列為16位無(wú)符號(hào)整型
語(yǔ)法:I2=im2unit16(I1) \ RGB2=im2unit16(RGB1) \ I=im2unit16(BW) \ X2=im2unit16(X1,'indexed')
ind2gray 把檢索圖像轉(zhuǎn)化為灰度圖像
語(yǔ)法:I=ind2gray(X,map)
ind2rgb? 轉(zhuǎn)化索引圖像為RGB真彩圖像
語(yǔ)法:RGB=ind2rgb(X,map)
isbw 判斷是否為二進(jìn)制圖像
語(yǔ)法:flag=isbw(A)
isgray 判斷是否為灰度圖像
語(yǔ)法:flag=isgray(A)
isind 判斷是否為索引圖像
語(yǔ)法:flag=isind(A)
isrgb 判斷是否為RGB真彩色圖像
語(yǔ)法:flag=isrgb(A)
mat2gray 轉(zhuǎn)換矩陣為灰度圖像
語(yǔ)法:I=mat2gray(A,[amin amax]) \ I=mat2gray(A)
rgb2gray 轉(zhuǎn)換RGB圖像或顏色映像表為灰度圖像
語(yǔ)法:I=rgb2gray(RGB) \ newmap=rgb2gray(map)
rgb2ind 轉(zhuǎn)換RGB圖像為索引圖像
語(yǔ)法:[X,map]=rgb2ind(RGB,tol) \ [X,map]=rgb2ind(RGB,n) \ X=rgb2ind(RGB,map) \ [...]=rgb2ind(...,dither_option)
十五、新增圖像處理工具箱函數(shù)
adapthisteq 限制對(duì)比度直方圖均衡化: J=adapthisteq(I) \ J=adapthisteq(I,param1,val1,param2,val2...)
applycform 用于顏色空間變換 out=applyform(I,C)
bwboundaries 描繪二進(jìn)制圖像邊界
語(yǔ)法: B=bwboundaries(BW) \ B=bwboundaries(BW,CONN) \ B=bwboundaries(BW,CONN,options) [BW,CONN,options] \ [BL]=bwboundaries(...) \ [BLNA]=bwboundaries()
bwtraceboundary 描述二進(jìn)制圖像中的物體
B=bwtraceboundary(BW,P,fstep) \ B=bwtraceboundary(BW,P,fstep,CONN) \ B=bwtraceboundary(...N,dir)
decorrstrech 對(duì)多通道圖像進(jìn)行去相關(guān)處理
語(yǔ)法:S=decorrstretch(I) \ S=decorrstretch(I,TOL)
dicomdict 獲取或讀取DICOM文件
語(yǔ)法:dicomdict('set',dictionary) \ dictionary=dicomdict('get')
getline 用鼠標(biāo)選擇ployline
語(yǔ)法:[x,y]=getline(fig) \ [x,y]=getline(ax) \ [x,y]=getline \ [x,y]=getline(...,'closed')
getpts 用鼠標(biāo)選擇像素點(diǎn)
語(yǔ)法:[x,y]=getpts(fig) \ [x,y]=getpts(ax) \ [x,y]=getpts
getrect 用鼠標(biāo)選擇矩陣
語(yǔ)法:rect=getrect(fig) \ rect=getrect(ax) \ rect=getrect(fig)
iccread 讀取ICC剖面
語(yǔ)法:P=iccread(filename)
im2java2d 將圖像轉(zhuǎn)換為Java緩沖圖像
語(yǔ)法:jimage=im2java2d(I) \ jimage=im2java2d(X,MAP)
imview 在圖像與藍(lán)旗中顯示圖像
語(yǔ)法:imview(I) \? imview(RGB) \ imview(X,map) \imview(I,range) \ imview(filename) \ imview(....'InitialMagnification',initial_mag) \ h=imview(...)? \? imview close all
ippl 檢查IPPL的存在
語(yǔ)法:TF=ippl \ [TF B]=ippl
iptdemos 顯示圖像處理工具箱中的索引圖像
lab2double、lab2unit16、lab2unit8 將L*a*b數(shù)據(jù)分別轉(zhuǎn)換為雙精度、16位數(shù)據(jù)、8位數(shù)據(jù)
makecform 創(chuàng)造一個(gè)色彩轉(zhuǎn)換結(jié)構(gòu)
poly2mask 把多邊形區(qū)域轉(zhuǎn)換成mask區(qū)域
語(yǔ)法:BW=poly2mask(x,y,m,n)
unitlut 查找表中A像素值
語(yǔ)法:B=unitlut(A,LUT)
xyz2double、xyz2unit16 將顏色數(shù)據(jù)從XYZ轉(zhuǎn)換到雙精度、16進(jìn)制。
語(yǔ)法:xyzd=xyz2double(XYZ) \ xyz16=xyz2unit16(xyz)
總結(jié)
以上是生活随笔為你收集整理的matlab图像处理命令(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: matlab图像处理命令(一)
- 下一篇: 一种二维条码图像处理流程