matlab图像处理命令(二)
轉自:http://blog.163.com/crazyzcs@126/blog/static/1297420502010229104452729/ (非原處)
?
圖像增強
1. 直方圖均衡化的 Matlab 實現
1.1 imhist 函數
功能:計算和顯示圖像的色彩直方圖
格式:imhist(I,n)
??????? imhist(X,map)
說明:imhist(I,n) 其中,n 為指定的灰度級數目,缺省值為256;imhist(X,map) 就算和顯示索引色圖像 X 的直方圖,map 為調色板。用
stem(x,counts) 同樣可以顯示直方圖。
1.2 imcontour 函數
功能:顯示圖像的等灰度值圖
格式:imcontour(I,n),imcontour(I,v)
說明:n 為灰度級的個數,v 是有用戶指定所選的等灰度級向量。
1.3 imadjust 函數
功能:通過直方圖變換調整對比度
格式:J=imadjust(I,[low high],[bottom top],gamma)
??????? newmap=imadjust(map,[low high],[bottom top],gamma)
說明:J=imadjust(I,[low high],[bottom top],gamma) 其中,gamma 為校正量r,[low high] 為原圖像中要變換的灰度范圍,[bottom top]
指定了變換后的灰度范圍;newmap=imadjust(map,[low high],[bottom top],gamma) 調整索引色圖像的調色板 map 。此時若 [low high] 和
[bottom top] 都為2×3的矩陣,則分別調整 R、G、B 3個分量。
1.4 histeq 函數
功能:直方圖均衡化
格式: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,...)
說明:J=histeq(I,hgram) 實現了所謂“直方圖規定化”,即將原是圖象 I 的直方圖變換成用戶指定的向量 hgram 。hgram 中的每一個元素
都在 [0,1] 中;J=histeq(I,n) 指定均衡化后的灰度級數 n ,缺省值為 64;[J,T]=histeq(I,...) 返回從能將圖像 I 的灰度直方圖變換成
圖像 J 的直方圖的變換 T ;newmap=histeq(X,map) 和 [new,T]=histeq(X,...) 是針對索引色圖像調色板的直方圖均衡。
2. 噪聲及其噪聲的 Matlab 實現
??????? imnoise 函數
格式:J=imnoise(I,type)
??????? J=imnoise(I,type,parameter)
說明:J=imnoise(I,type) 返回對圖像 I 添加典型噪聲后的有噪圖像 J ,參數 type 和 parameter 用于確定噪聲的類型和相應的參數。
3. 圖像濾波的 Matlab 實現
3.1 conv2 函數
功能:計算二維卷積
格式:C=conv2(A,B)
??????? C=conv2(Hcol,Hrow,A)
??????? C=conv2(...,'shape')
說明:對于 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 向量在行方向上進行卷積;C=conv2(...,'shape') 用來指定 conv2
返回二維卷積結果部分,參數 shape 可取值如下:
??????? 》full 為缺省值,返回二維卷積的全部結果;
??????? 》same 返回二維卷積結果中與 A 大小相同的中間部分;
??????? valid 返回在卷積過程中,未使用邊緣補 0 部分進行計算的卷積結果部分,當 size(A)>size(B) 時,size(C)=[Ma-Mb+1,Na-Nb+1]
。
3.2 conv 函數
功能:計算多維卷積
格式:與 conv2 函數相同
3.3 filter2函數
功能:計算二維線型數字濾波,它與函數 fspecial 連用
格式:Y=filter2(B,X)
??????? Y=filter2(B,X,'shape')
說明:對于 Y=filter2(B,X) ,filter2 使用矩陣 B 中的二維 FIR 濾波器對數據 X 進行濾波,結果 Y 是通過二維互相關計算出來的,其大
小與 X 一樣;對于 Y=filter2(B,X,'shape') ,filter2 返回的 Y 是通過二維互相關計算出來的,其大小由參數 shape 確定,其取值如下
:
??????? 》full 返回二維相關的全部結果,size(Y)>size(X);
??????? 》same 返回二維互相關結果的中間部分,Y 與 X 大小相同;
??????? 》valid 返回在二維互相關過程中,未使用邊緣補 0 部分進行計算的結果部分,有 size(Y)<size(X) 。
3.4 fspecial 函數
功能:產生預定義濾波器
格式:H=fspecial(type)
??????? H=fspecial('gaussian',n,sigma)???????? 高斯低通濾波器
??????? H=fspecial('sobel')????????????????????????? Sobel 水平邊緣增強濾波器
??????? H=fspecial('prewitt')?????????????????????? Prewitt 水平邊緣增強濾波器
??????? H=fspecial('laplacian',alpha)???????????? 近似二維拉普拉斯運算濾波器
??????? H=fspecial('log',n,sigma)???????????????? 高斯拉普拉斯(LoG)運算濾波器
??????? H=fspecial('average',n)?????????????????? 均值濾波器
??????? H=fspecial('unsharp',alpha)???????????? 模糊對比增強濾波器
說明:對于形式 H=fspecial(type) ,fspecial 函數產生一個由 type 指定的二維濾波器 H ,返回的 H 常與其它濾波器搭配使用。
4. 彩色增強的 Matlab 實現
4.1 imfilter函數
功能:真彩色增強
格式:B=imfilter(A,h)
說明:將原始圖像 A 按指定的濾波器 h 進行濾波增強處理,增強后的圖像 B 與 A 的尺寸和類型相同
圖像的變換
1. 離散傅立葉變換的 Matlab 實現
????? Matlab 函數 fft、fft2 和 fftn 分別可以實現一維、二維和 N 維 DFT 算法;而函數 ifft、ifft2 和 ifftn 則用來計算反 DFT 。
這些函數的調用格式如下:
???????? A=fft(X,N,DIM)
????? 其中,X 表示輸入圖像;N 表示采樣間隔點,如果 X 小于該數值,那么 Matlab 將會對 X 進行零填充,否則將進行截取,使之長度為
N ;DIM 表示要進行離散傅立葉變換。
??????? A=fft2(X,MROWS,NCOLS)
其中,MROWS 和 NCOLS 指定對 X 進行零填充后的 X 大小。
??????? A=fftn(X,SIZE)
其中,SIZE 是一個向量,它們每一個元素都將指定 X 相應維進行零填充后的長度。
????? 函數 ifft、ifft2 和 ifftn的調用格式于對應的離散傅立葉變換函數一致。
例子:圖像的二維傅立葉頻譜
% 讀入原始圖像
I=imread('lena.bmp');
imshow(I)
% 求離散傅立葉頻譜
J=fftshift(fft2(I));
figure;
imshow(log(abs(J)),[8,10])
2. 離散余弦變換的 Matlab 實現
2.1. dCT2 函數
功能:二維 DCT 變換
格式:B=dct2(A)
??????? B=dct2(A,m,n)
??????? B=dct2(A,[m,n])
說明:B=dct2(A) 計算 A 的 DCT 變換 B ,A 與 B 的大小相同;B=dct2(A,m,n) 和 B=dct2(A,[m,n]) 通過對 A 補 0 或剪裁,使 B 的大
小為 m×n。
2.2. dict2 函數
功能:DCT 反變換
格式:B=idct2(A)
??????? B=idct2(A,m,n)
??????? B=idct2(A,[m,n])
說明:B=idct2(A) 計算 A 的 DCT 反變換 B ,A 與 B 的大小相同;B=idct2(A,m,n) 和 B=idct2(A,[m,n]) 通過對 A 補 0 或剪裁,使 B
的大小為 m×n。
2.3. dctmtx函數
功能:計算 DCT 變換矩陣
格式:D=dctmtx(n)
說明:D=dctmtx(n) 返回一個 n×n 的 DCT 變換矩陣,輸出矩陣 D 為 double 類型。
3. 圖像小波變換的 Matlab 實現
3.1 一維小波變換的 Matlab 實現
(1) dwt 函數
功能:一維離散小波變換
格式:[cA,cD]=dwt(X,'wname')
??????? [cA,cD]=dwt(X,Lo_D,Hi_D)
說明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函數 'wname' 對信號 X 進行分解,cA、cD
分別為近似分量和細節分量;[cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的濾波器組 Lo_D、Hi_D 對信號進行分解。
(2) idwt 函數
功能:一維離散小波反變換
格式: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)
說明:X=idwt(cA,cD,'wname') 由近似分量 cA 和細節分量 cD 經小波反變換重構原始信號 X 。
??????? 'wname' 為所選的小波函數
??????? X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重構濾波器 Lo_R 和 Hi_R 經小波反變換重構原始信號 X 。
??????? X=idwt(cA,cD,'wname',L) 和 X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信號 X 中心附近的 L 個點。
3.2 二維小波變換的 Matlab 實現
????????? 二維小波變換的函數
-------------------------------------------------
???? 函數名??????????????? 函數功能
---------------------------------------------------
???? dwt2??????????? 二維離散小波變換
?? wavedec2?????? 二維信號的多層小波分解
???? idwt2?????????? 二維離散小波反變換
?? waverec2??????? 二維信號的多層小波重構
?? wrcoef2????????? 由多層小波分解重構某一層的分解信號
?? upcoef2????????? 由多層小波分解重構近似分量或細節分量
?? detcoef2???????? 提取二維信號小波分解的細節分量
?? appcoef2??????? 提取二維信號小波分解的近似分量
?? upwlev2???????? 二維小波分解的單層重構
?? dwtpet2???????? 二維周期小波變換
?? idwtper2??????? 二維周期小波反變換
-------------------------------------------------------------
(1) wcodemat 函數
功能:對數據矩陣進行偽彩色編碼
格式:Y=wcodemat(X,NB,OPT,ABSOL)
??????? Y=wcodemat(X,NB,OPT)
??????? Y=wcodemat(X,NB)
??????? Y=wcodemat(X)
說明:Y=wcodemat(X,NB,OPT,ABSOL) 返回數據矩陣 X 的編碼矩陣 Y ;NB 偽編碼的最大值,即編碼范圍為 0~NB,缺省值 NB=16;
?????? OPT 指定了編碼的方式(缺省值為 'mat'),即:
???????????????? OPT='row' ,按行編碼
???????????????? OPT='col' ,按列編碼
???????????????? OPT='mat' ,按整個矩陣編碼
?????? ABSOL 是函數的控制參數(缺省值為 '1'),即:
???????????????? ABSOL=0 時,返回編碼矩陣
???????????????? ABSOL=1 時,返回數據矩陣的絕對值 ABS(X)
(2) dwt2 函數
功能:二維離散小波變換
格式:[cA,cH,cV,cD]=dwt2(X,'wname')
??????? [cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)
說明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函數 'wname' 對二維信號 X 進行二維離散小波變幻;cA,cH,cV,cD 分別為近似分
量、水平細節分量、垂直細節分量和對角細節分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D) 使用指定的分解低通和高通濾波器 Lo_D 和 Hi_D 分
解信號 X 。
(3) wavedec2 函數
功能:二維信號的多層小波分解
格式:[C,S]=wavedec2(X,N,'wname')
??????? [C,S]=wavedec2(X,N,Lo_D,Hi_D)
說明:[C,S]=wavedec2(X,N,'wname') 使用小波基函數 'wname' 對二維信號 X 進行 N 層分解;[C,S]=wavedec2(X,N,Lo_D,Hi_D) 使用指定
的分解低通和高通濾波器 Lo_D 和 Hi_D 分解信號 X 。
(4) idwt2 函數
功能:二維離散小波反變換
格式: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)
說明:X=idwt2(cA,cH,cV,cD,'wname') 由信號小波分解的近似信號 cA 和細節信號 cH、cH、cV、cD 經小波反變換重構原信號 X
;X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R) 使用指定的重構低通和高通濾波器 Lo_R 和 Hi_R 重構原信號 X ;X=idwt2(cA,cH,cV,cD,'wname',S)
和 X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S) 返回中心附近的 S 個數據點。
(5) waverec2 函數
說明:二維信號的多層小波重構
格式:X=waverec2(C,S,'wname')
??????? X=waverec2(C,S,Lo_R,Hi_R)
說明:X=waverec2(C,S,'wname') 由多層二維小波分解的結果 C、S 重構原始信號 X ,'wname'
為使用的小波基函數;X=waverec2(C,S,Lo_R,Hi_R) 使用重構低通和高通濾波器 Lo_R 和 Hi_R 重構原信號。
圖像處理工具箱
1. 圖像和圖像數據
?? 缺省情況下,MATLAB將圖像中的數據存儲為雙精度類型(double),64位浮點
數,所需存儲量很大;MATLAB還支持另一種類型無符號整型(uint8),即圖像矩
陣中每個數據占用1個字節。
?? 在使用MATLAB工具箱時,一定要注意函數所要求的參數類型。另外,uint8
與double兩種類型數據的值域不同,編程需注意值域轉換。
????????? 從uint8到double的轉換
?? ---------------------------------------------
?????? 圖像類型??????? MATLAB語句
?? ---------------------------------------------
???? 索引色???????????? B=double(A)+1
???? 索引色或真彩色 B=double(A)/255
???? 二值圖像????????? B=double(A)
?? ---------------------------------------------
???????? 從double到uint8的轉換
?? ---------------------------------------------
?????? 圖像類型??????? MATLAB語句
?? ---------------------------------------------
??? 索引色?????????????? B=uint8(round(A-1))
??? 索引色或真彩色??? B=uint8(round(A*255))
??? 二值圖像??????????? B=logical(uint8(round(A)))
?? ---------------------------------------------
2. 圖像處理工具箱所支持的圖像類型
2.1 真彩色圖像
??? R、G、B三個分量表示一個像素的顏色。如果要讀取圖像中(100,50)處的像素值,
可查看三元數據(100,50,1:3)。
??? 真彩色圖像可用雙精度存儲,亮度值范圍是[0,1];比較符合習慣的存儲方法是用無
符號整型存儲,亮度值范圍[0,255]
2.2 索引色圖像
?? 包含兩個結構,一個是調色板,另一個是圖像數據矩陣。調色板是一個有3列和若干行
的色彩映象矩陣,矩陣每行代表一種顏色,3列分別代表紅、綠、藍色強度的雙精度數。
?? 注意:MATLAB中調色板色彩強度[0,1],0代表最暗,1代表最亮。
????????? 常用顏色的RGB值
?? --------------------------------------------
??? 顏色??? R?? G?? B????? 顏色??? R?? G?? B
?? --------------------------------------------
???? 黑???? 0?? 0?? 1????? 洋紅??? 1?? 0?? 1
???? 白???? 1?? 1?? 1????? 青藍??? 0?? 1?? 1
???? 紅???? 1?? 0?? 0????? 天藍 0.67 0?? 1
???? 綠???? 0?? 1?? 0????? 橘黃??? 1 0.5 0
???? 藍???? 0?? 0?? 1????? 深紅?? 0.5 0?? 0
???? 黃???? 1?? 1?? 0?????? 灰??? 0.5 0.5 0.5??????
?? --------------------------------------------
???????? 產生標準調色板的函數
?? -------------------------------------------------
??? 函數名?????? 調色板
?? -------------------------------------------------
???? Hsv?????? 色彩飽和度,以紅色開始,并以紅色結束
???? Hot?????? 黑色-紅色-黃色-白色
???? Cool????? 青藍和洋紅的色度
???? Pink????? 粉紅的色度
???? Gray????? 線型灰度
???? Bone????? 帶藍色的灰度
???? Jet??????? Hsv的一種變形,以藍色開始,以藍色結束
???? Copper??? 線型銅色度
???? Prim?????? 三棱鏡,交替為紅、橘黃、黃、綠和天藍
???? Flag?????? 交替為紅、白、藍和黑
--------------------------------------------------
?? 缺省情況下,調用上述函數灰產生一個64×3的調色板,用戶也可指定調色板大小。
?? 索引色圖像數據也有double和uint8兩種類型。
?? 當圖像數據為double類型時,值1代表調色板中的第1行,值2代表第2行……
?? 如果圖像數據為uint8類型,0代表調色板的第一行,,值1代表第2行……
2.3 灰度圖像
?? 存儲灰度圖像只需要一個數據矩陣。
?? 數據類型可以是double,[0,1];也可以是uint8,[0,255]
2.4 二值圖像
?? 二值圖像只需一個數據矩陣,每個像素只有兩個灰度值,可以采用uint8或double類型存儲。
?? MATLAB工具箱中以二值圖像作為返回結果的函數都使用uint8類型。
2.5 圖像序列
?? MATLAB工具箱支持將多幀圖像連接成圖像序列。
?? 圖像序列是一個4維數組,圖像幀的序號在圖像的長、寬、顏色深度之后構成第4維。
?? 分散的圖像也可以合并成圖像序列,前提是各圖像尺寸必須相同,若是索引色圖像,
調色板也必須相同。
?? 可參考cat()函數??? A=cat(4,A1,A2,A3,A4,A5)
3. MATLAB圖像類型轉換
???????? 圖像類型轉換函數
?? ---------------------------------------------------------------------------
???? 函數名????????????????????? 函數功能
?? ---------------------------------------------------------------------------
???? dither?????? 圖像抖動,將灰度圖變成二值圖,或將真彩色圖像抖動成索引色圖像
??? gray2ind??? 將灰度圖像轉換成索引圖像
??? grayslice??? 通過設定閾值將灰度圖像轉換成索引色圖像
???? im2bw????? 通過設定亮度閾值將真彩色、索引色、灰度圖轉換成二值圖
??? ind2gray??? 將索引色圖像轉換成灰度圖像
??? ind2rgb????? 將索引色圖像轉換成真彩色圖像
??? mat2gray?? 將一個數據矩陣轉換成一副灰度圖
??? rgb2gray??? 將一副真彩色圖像轉換成灰度圖像
??? rgb2ind????? 將真彩色圖像轉換成索引色圖像
?? ----------------------------------------------------------------------------
4. 圖像文件的讀寫和查詢
4.1 圖形圖像文件的讀取
?? 利用函數imread()可完成圖形圖像文件的讀取,語法:
???? A=imread(filename,fmt)
???? [X,map]=imread(filename,fmt)
???? [...]=imread(filename)
???? [...]=imread(filename,idx) (只對TIF格式的文件)
???? [...]=imread(filename,ref) (只對HDF格式的文件)
?? 通常,讀取的大多數圖像均為8bit,當這些圖像加載到內存中時,Matlab就將其存放
在類uint8中。此為Matlab還支持16bit的PNG和TIF圖像,當讀取這類文件時,Matlab就將
其存貯在uint16中。
?? 注意:對于索引圖像,即使圖像陣列的本身為類uint8或類uint16,imread函數仍將
顏色映象表讀取并存貯到一個雙精度的浮點類型的陣列中。
4.2 圖形圖像文件的寫入
?? 使用imwrite函數,語法如下:
?? imwrite(A,filename,fmt)
?? imwrite(X,map,filename,fmt)
?? imwrite(...,filename)
?? imwrite(...,parameter,value)
?? 當利用imwrite函數保存圖像時,Matlab缺省的方式是將其簡化道uint8的數據格式。
4.3 圖形圖像文件信息的查詢?? imfinfo()函數
5. 圖像文件的顯示
5.1 索引圖像及其顯示
?? 方法一:
????????? image(X)
????????? colormap(map)
?? 方法二:
????????? imshow(X,map)
5.2 灰度圖像及其顯示
?? Matlab 7.0 中,要顯示一副灰度圖像,可以調用函數 imshow 或 imagesc (即
imagescale,圖像縮放函數)
?? (1) imshow 函數顯示灰度圖像
??? 使用 imshow(I)??? 或使用明確指定的灰度級書目:imshow(I,32)
??? 由于Matlab自動對灰度圖像進行標度以適合調色板的范圍,因而可以使用自定義
大小的調色板。其調用格式如下:
?????????? imshow(I,[low,high])
??? 其中,low 和 high 分別為數據數組的最小值和最大值。
?? (2) imagesc 函數顯示灰度圖像
?? 下面的代碼是具有兩個輸入參數的 imagesc 函數顯示一副灰度圖像
?????? imagesc(1,[0,1]);
?????? colormap(gray);
??? imagesc 函數中的第二個參數確定灰度范圍。灰度范圍中的第一個值(通常是0),
對應于顏色映象表中的第一個值(顏色),第二個值(通常是1)則對應與顏色映象表
中的最后一個值(顏色)。灰度范圍中間的值則線型對應與顏色映象表中剩余的值(顏色)。
??? 在調用 imagesc 函數時,若只使用一個參數,可以用任意灰度范圍顯示圖像。在該
調用方式下,數據矩陣中的最小值對應于顏色映象表中的第一個顏色值,數據矩陣中的最大
值對應于顏色映象表中的最后一個顏色值。
5.3 RGB 圖像及其顯示
?? (1) image(RGB)
?? 不管RGB圖像的類型是double浮點型,還是 uint8 或 uint16 無符號整數型,Matlab都
能通過 image 函數將其正確顯示出來。
?? RGB8 = uint8(round(RGB64×255)); % 將 double 浮點型轉換為 uint8 無符號整型
?? RGB64 = double(RGB8)/255;??????????? % 將 uint8 無符號整型轉換為 double 浮點型
?? RGB16 = uint16(round(RGB64×65535)); % 將 double 浮點型轉換為 uint16 無符號整型
?? RGB64 = double(RGB16)/65535;????? % 將 uint16 無符號整型轉換為 double 浮點型
?? (2) imshow(RGB) 參數是一個 m×n×3 的數組
5.4 二進制圖像及其顯示
?? (1) imshow(BW)
?? 在 Matlab 7.0 中,二進制圖像是一個邏輯類,僅包括 0 和 1 兩個數值。像素 0 顯示
為黑色,像素 1 顯示為白色。
?? 顯示時,也可通過NOT(~)命令,對二進制圖象進行取反,使數值 0 顯示為白色;1 顯示
為黑色。
?? 例如: imshow(~BW)
?? (2) 此外,還可以使用一個調色板顯示一副二進制圖像。如果圖形是 uint8 數據類型,
則數值 0 顯示為調色板的第一個顏色,數值 1 顯示為第二個顏色。
?? 例如: imshow(BW,[1 0 0;0 0 1])??
5.5 直接從磁盤顯示圖像
?? 可使用一下命令直接進行圖像文件的顯示:
??????? imshow filename
?? 其中,filename 為要顯示的圖像文件的文件名。
?? 如果圖像是多幀的,那么 imshow 將僅顯示第一幀。但需注意,在使用這種方式時,圖像
數據沒有保存在Matlab 7.0 工作平臺。如果希望將圖像裝入工作臺中,需使用 getimage 函
數,從當前的句柄圖形圖像對象中獲取圖像數據,
?? 命令形式為: rgb = getimage;
bwlabel
功能:
標注二進制圖像中已連接的部分。
L = bwlabel(BW,n)
[L,num] = bwlabel(BW,n)
isbw
功能:
判斷是否為二進制圖像。
語法:
flag = isbw(A)
相關命令:
isind, isgray, isrgb
74.isgray
功能:
判斷是否為灰度圖像。
語法:
flag = isgray(A)
相關命令:
isbw, isind, isrgb
11.bwselect
功能:
在二進制圖像中選擇對象。
語法:
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
功能:
轉換圖像為二進制圖像。
語法:
BW = im2bw(I,level)
BW = im2bw(X,map,level)
BW = im2bw(RGB,level)
舉例
load trees
BW = im2bw(X,map,0.4);
imshow(X,map)
轉自:http://xiaozu.renren.com/xiaozu/106455/333344685
1、圖像的變換
① fft2:fft2函數用于數字圖像的二維傅立葉變換,如:i=imread('104_8.tif');
j=fft2(i);
②ifft2::ifft2函數用于數字圖像的二維傅立葉反變換,如:
?i=imread('104_8.tif');
?j=fft2(i);
k=ifft2(j);
2、模擬噪聲生成函數和預定義濾波器
① imnoise:用于對圖像生成模擬噪聲,如:
?i=imread('104_8.tif');
?j=imnoise(i,'gaussian',0,0.02);%模擬高斯噪聲
② fspecial:用于產生預定義濾波器,如:
h=fspecial('sobel');%sobel水平邊緣增強濾波器
h=fspecial('gaussian');%高斯低通濾波器
h=fspecial('laplacian');%拉普拉斯濾波器
h=fspecial('log');%高斯拉普拉斯(LoG)濾波器
h=fspecial('average');%均值濾波器
?2、圖像的增強
①直方圖:imhist函數用于數字圖像的直方圖顯示,如:
i=imread('104_8.tif');
imhist(i);
②直方圖均化:histeq函數用于數字圖像的直方圖均化,如:
i=imread('104_8.tif');
j=histeq(i);
③對比度調整:imadjust函數用于數字圖像的對比度調整,如:i=imread('104_8.tif');
j=imadjust(i,[0.3,0.7],[]);
④對數變換:log函數用于數字圖像的對數變換,如:
i=imread('104_8.tif');
j=double(i);
k=log(j);
⑤基于卷積的圖像濾波函數:filter2函數用于圖像濾波,如: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函數用于圖像的中值濾波,如:
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、圖像邊緣檢測
①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、形態學圖像處理
①膨脹:是在二值化圖像中“加長”或“變粗”的操作,函數imdilate執行膨脹運算,如:
a=imread('104_7.tif'); %輸入二值圖像
b=[0 1 0;1 1 1;0 1 0];
c=imdilate(a,b);
②腐蝕:函數imerode執行腐蝕,如:
a=imread('104_7.tif'); %輸入二值圖像
b=strel('disk',1);
c=imerode(a,b);
③開運算:先腐蝕后膨脹稱為開運算,用imopen來實現,如:
?a=imread('104_8.tif');
b=strel('square',2);
c=imopen(a,b);
④閉運算:先膨脹后腐蝕稱為閉運算,用imclose來實現,如:
?a=imread('104_8.tif');
b=strel('square',2);
c=imclose(a,b);
?===========================================================
?Matlab 圖像處理相關函數命令大全
?一、通用函數:
colorbar? 顯示彩色條
語法:colorbar \ colorbar('vert') \ colorbar('horiz') \ colorbar(h) \ h=colorbar(...) \ colorbar(...,'peer',axes_handle)
getimage 從坐標軸取得圖像數據
語法:A=getimage(h) \ [x,y,A]=getimage(h) \ [...,A,flag]=getimage(h) \ [...]=getimage
imshow 顯示圖像
語法: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 在矩形框中同時顯示多幅圖像
語法:montage(I) \ montage(BW) \ montage(X,map) \ montage(RGB) \ h=montage(...)
immovie 創建多幀索引圖的電影動畫
語法:mov=immovie(X,map) \ mov=immovie(RGB)
subimage 在一副圖中顯示多個圖像
語法:subimage(X,map) \ subimage(I) \ subimage(BW) \? subimage(RGB) \ subimage(x,y,...) \ subimage(...)
truesize 調整圖像顯示尺寸
語法:truesize(fig,[mrows mcols]) \ truesize(fig)
warp 將圖像顯示到紋理映射表面
語法:warp(X,map) \ warp(I ,n) \ warp(z,...) warp(x,y,z,...) \? h=warp(...)
zoom 縮放圖像
語法:zoom on \ zoom off \ zoom out \ zoom reset \ zoom \ zoom xon \ zoom yon\ zoom(factor) \ zoom(fig,option)
?二、圖像文件I/O函數命令
imfinfo? 返回圖形圖像文件信息
語法:info=imfinfo(filename,fmt) \ info=imfinfo(filename)
imread? 從圖像文件中讀取(載入)圖像
語法: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? 把圖像寫入(保存)圖像文件中
語法:imwrite(A,filename,fmt) \ imwrite(X,map,filename,fmt) \ imwrite(...,filename) \ imwite(...,Param1,Val1,Param2,Val2...)
imcrop? 剪切圖像
語法: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? 改變圖像大小
語法:B=imresize(A,m,method)
imrotate? 旋轉圖像
語法:B=imrotate(A,angle,method) \ B=imrotate(A,angle,method,'crop')
?三、像素和統計處理函數
corr2? 計算兩個矩形的二維相關系數
語法:r=corr2(A,B)
imcontour 創建圖像數據的輪廓圖
語法:imcontour(I,n) \ imcontour(I,v) \ imcontour(x,y,...) \ imcontour(...,LineSpec) \ [C,h] =imcontour(...)
imfeature? 計算圖像區域的特征尺寸
語法:stats=imfeature(L,measurements) \ stats=imfeature(L,measurements,n)
imbist? 顯示圖像數據的柱狀圖
impixel 確定像素顏色值
語法: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 沿線段計算剖面圖的像素值
語法: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 計算矩陣元素的平均值
語法:B=mean2(A)
pixval? 顯示圖像像素信息
語法:pixval on
std2 計算矩陣元素的標準偏移
語法:b=std2(A)
四、圖像分析函數:
edge 圖像邊緣檢測
語法: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? 獲取四叉樹分解的塊值
語法:[vals,r,c]=qtgetblk(I,S,dim) \ [vals,idx]=qtgetblk(I,S,dim)
qtsetblk 設置四叉樹分解中的塊值
語法:J=qtsetblk(I,S,dim,vals)
五、圖像增強函數
histeq 用柱狀圖均等化增強對比
語法:J=histeq(I,hgram) \ J=histeq(I,n) \ [J,T]=histeq(I,...) \ newmap=histeq(X,map,hgram) \ newmap=histeq(X,map)
imadjust 調整圖像灰度值或顏色映像表
語法: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 增強圖像的渲染效果
語法:J=imnoise(I,type) \ J=imnoise(I,type,parameters)
medfilt2 進行二維中值過濾
語法:B=medfilt2(A,[m n]) \ B=medfilt2(A) \ B=medfilt2(A,'indexed',...)
ordfilt2 進行二維統計順序過濾
語法:B=ordfilt2(A,order,domain) \ B=ordfilt2(A,order,domain,S) \ B=ordfilt2(...,padopt)
wiener2 進行二維適應性去噪過濾處理
語法:J=wiener2(I,[m? n],noise) \ [J,noise]=wiener2(I,[m n])
六、線性濾波函數
conv2 進行二維卷積操作
語法:C=conv2(A,B) \ C=conv2(hcol,hrow,A) \ C=conv2(...,'shape')
convmtx2 計算二維卷積矩陣
語法:T=convmtx2(H,m,n) \ T=convmtx2(H,[m n])
convn 計算n維卷積
語法:C=convn(A,B) \ C=convn(A,B,'shape')
filter2 進行二維線性過濾操作
語法:Y=filter2(h,X) \ Y=filter2(h,X,shape)
fspecial 創建預定義過濾器
語法:h=fspecial(type) \ h=fspecial(type,parameters)
七、線性二維濾波設計函數
freqspace 確定二維頻率響應的頻率空間
語法:[f1,f2]=freqspace(n) \ [f1,f2]=freqspace([m n]) \ [x1 ,y1]=freqspace(...,'meshgrid') \ f=freqspace(N) \ f=freqspace(N,'whole')
freqz2 計算二維頻率響應
語法:[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 用頻率采樣法設計二維FIR過濾器
語法:h=fsamp2(Hd) \ h=fsamp2(f1,f2,Hd,[m n])
ftrans2 通過頻率轉換設計二維FIR過濾器
語法:h=ftrans2(b,t) \ h=ftrans2(b)
fwind1 用一維窗口方法設計二維FIR過濾器
語法:h=fwind1(Hd,win) \ h=fwind1(Hd,win1,win2) \ h=fwind1(f1,f2,Hd,...)
fwind2 用二維窗口方法設計二維FIR過濾器
語法:h=fwind2(Hd,win) \ h=fwind2(f1,f2,Hd,win)
八、圖像變換函數
dct2 進行二維離散余弦變換(反余弦變換用idct2)
語法:B=dct2(A) \ B=dct2(A,m.n) \ B=dct2(A,[m n])
dctmtx 計算離散余弦傅立葉變換
語法:D=dctmtx(n)
fft2 進行二維快速傅立葉變換(反變換用ifft2)
語法:Y=fft2(X) \ Y=fft2(X,m,n)
fftn 進行n維快速傅立葉變換(反變換用ifftn)
語法:Y=ffn(X) \ Y=fftn(X,siz)
fftshift 快速傅立葉變換的DC組件移到光譜中心
語法:Y=fftshift(X) \ Y=fftshift(X,dim)
iradon 進行反radon變換
語法:I=iradon(P,theta) \ I=iradon(P,theta,interp,filter,d,n) \ [I,h]=iradon(...)
phantom 產生一個頭部幻影圖像
語法:P=phantom(def,n) \ P=phantom(E,n) \ [P,E]=phantom(...)
radon 計算radon變換
語法:R=radon(I,theta) \ [R,xp]=radon(...)
九、邊沿和塊處理函數
bestblk 確定進行塊操作的塊大小
語法:siz=bestblk([m n],k) \ [mb,nb]=bestblk([m n],k)
blkproc 實現圖像的顯示塊操作
語法:B=blkproc(A,[m n]),fun) \ B=blkproc(A,[m n],fun,P1,P2,...) \ B=blkproc(A,[m n],[mborder nborder],fun,...)
col2im 將矩陣的列重新組織到塊中
語法:A=col2im(B,[m n],[mm nn],block_type) \ A=col2im(B,[m n],[mm nn])
colfilt 利用列相關函數進行邊沿操作
語法: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 重調圖像塊為列
語法:B=im2col(A,[m n],block_type) \ B=im2col(A,[m n]) \ B=im2col(A,'indexed',...)
nlfilter 進行邊沿操作
語法:B=nlfilter(A,[m n],fun) \ B=nlfilter(A,[m n],fun,P1,P2,...) \ B=nlfilter(A,'indexed',...)
十、二進制圖像操作函數
applylut 在二進制圖像中利用lookup表進行行邊沿操作
語法:A=applylut(BW,LUT)
bwarea 計算二進制圖像對象的面積
語法:total=bwarea(BW)
bweuler 計算二進制圖像的歐拉數
語法:eul=bweuler(BW)
bwfill 填充二進制圖像的背景色
語法: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 標注二進制圖像中已連接的部分
語法:L=bwlabel(BW,n) \ [L,num]=bwlabel(BW,n)
bwmorph 提取二進制圖像的輪廓
語法:BW2=bwmorph(BW1,operation) \ BW2=bwmorph(BW1,operation,n)
bwperim 計算二進制圖像中對象的周長
語法:BW2=bwperim(BW1) \ BW2=bwperim(BW1,CONN)
bwselect 在二進制圖像中選擇對象
語法: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 放大二進制圖像
語法:BW2=dilate(BW1,SE) \ BW2=dilate(BW1,SE,alg) \ BW2=dilate(BW1,SE,...,n)
erode 弱化二進制圖像的邊界
語法:BW2=erode(BW1,SE) \ BW2=erode(BW1,SE,alg) \ BW2=erode(BW1,SE,...,n)
makelut 創建一個用于applylut函數的lookup表
語法:lut=makelut(fun,n) \ lut=makelut(fun,n,P1,P2,...)
十一、區域處理函數
roicolor 選擇感興趣的顏色區
語法:BW=roicolor(A,low,high) \ BW=rocicolor(A,v)
roifill 在圖像的任意區域中進行平滑插補
語法: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 過濾敏感區域
語法:J=roifilt2(h,I,BW) \ J=roifilt2(I,BW,fun) \ J=roifilt2(I,BW,fun,P1,P2,...)
roipoly 選擇一個敏感的多邊形區域
語法: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(...)
十二、顏色映像處理函數
brighten 增加或降低顏色映像表的亮度
語法:brighten(beta) \ brighten(h,beta) \ newmap=brighten(beta) \ newmap=brighten(cmap,beta)
cmpermute 調整顏色映像表中的顏色
語法:[Y,newmap]=cmpermute(X,map) \ [Y,newmap]=cmpermute(X,map,index)
cmunigue 查找顏色映像表中特定的顏色及相應的圖像
語法:[Y,newmap]=cmunigue(X,map) \ [Y,newmap]=cmunigue(RGB) \ [Y,newmap]=cmunique(I)
imapprox 對索引圖像進行近似處理
語法:[Y,newmap]=imapprox(X,map,n) \? [Y,newmap]=imapprox(X,map,tol) \ Y=imapprox(X,map,newmap) \ [...]=imapprox(...,dither_option)
rgbplot 劃分顏色映像表
語法:rgbplot(cmap)
十三、顏色空間轉換函數
hsv2rgb 轉換HSV值為RGB顏色空間:M=hsv2rgb(H)
ntsc2rgb 轉換NTSC值為RGB顏色空間:rgbmap=ntsc2rgb(yiqmap) \ RGB=ntsc2rgb(YIQ)
rgb2hsv 轉換RGB值為HSV顏色空間:cmap=rgb2hsv(M)
rgb2ntsc 轉換RGB值為NTSC顏色空間:yiqmap=rgb2ntsc(rgbmap) \ YIQ=rgb2ntsc(RGB)
rgb2ycbcr 轉換RGB值為YCbCr顏色空間:ycbcrmap=rgb2ycbcr(rgbmap) \ YCBCR=rgb2ycbcr(RGB)
ycbcr2rgb 轉化YCbCr值為RGB顏色空間:rgbmap=ycbcr2rgb(ycbcrmap) \ RGB=ycbcr2rgb(YCBCR)
十四、圖像類型和類型轉換函數
dither 通過抖動增加外觀顏色分辨率轉換圖像
語法:X=dither(RGB,map) \ BW=dither(I)
gray2ind 轉換灰度圖像為索引圖像
語法:[X,map]=gray2ind(I,n) \ [X,map]=gray2ind(BW,n)
grayslice 從灰度圖像為索引圖像
語法:X=grayslice(I,n) \ X=grayslice(I,v)
im2bw 轉換圖像為二進制圖像
語法:BW=im2bw(I,level) \ BW=im2bw(X,map,level) \ BW=im2bw(RGB,level)
im2double 轉換圖像矩陣為雙精度型
語法:I2=im2double(I1) \ RGB2=im2double(RGB1) \ I=im2double(BW) \ X2=im2double(X1,'indexed')
double 轉換數據為雙精度型
語法:double(X)
unit8 、unit16轉換數據為8位、16位無符號整型: i=unit8(x) \ i=unit16(x)
im2unit8 轉換圖像陣列為8位無符號整型
語法:I2=im2unit8(I1) \ RGB2=im2unit8(RGB1) \ I=im2unit8(BW) \ X2=im2unit8(X1,'indexed')
im2unit16 轉換圖像陣列為16位無符號整型
語法:I2=im2unit16(I1) \ RGB2=im2unit16(RGB1) \ I=im2unit16(BW) \ X2=im2unit16(X1,'indexed')
ind2gray 把檢索圖像轉化為灰度圖像
語法:I=ind2gray(X,map)
ind2rgb? 轉化索引圖像為RGB真彩圖像
語法:RGB=ind2rgb(X,map)
isbw 判斷是否為二進制圖像
語法:flag=isbw(A)
isgray 判斷是否為灰度圖像
語法:flag=isgray(A)
isind 判斷是否為索引圖像
語法:flag=isind(A)
isrgb 判斷是否為RGB真彩色圖像
語法:flag=isrgb(A)
mat2gray 轉換矩陣為灰度圖像
語法:I=mat2gray(A,[amin amax]) \ I=mat2gray(A)
rgb2gray 轉換RGB圖像或顏色映像表為灰度圖像
語法:I=rgb2gray(RGB) \ newmap=rgb2gray(map)
rgb2ind 轉換RGB圖像為索引圖像
語法:[X,map]=rgb2ind(RGB,tol) \ [X,map]=rgb2ind(RGB,n) \ X=rgb2ind(RGB,map) \ [...]=rgb2ind(...,dither_option)
十五、新增圖像處理工具箱函數
adapthisteq 限制對比度直方圖均衡化: J=adapthisteq(I) \ J=adapthisteq(I,param1,val1,param2,val2...)
applycform 用于顏色空間變換 out=applyform(I,C)
bwboundaries 描繪二進制圖像邊界
語法: B=bwboundaries(BW) \ B=bwboundaries(BW,CONN) \ B=bwboundaries(BW,CONN,options) [BW,CONN,options] \ [BL]=bwboundaries(...) \ [BLNA]=bwboundaries()
bwtraceboundary 描述二進制圖像中的物體
B=bwtraceboundary(BW,P,fstep) \ B=bwtraceboundary(BW,P,fstep,CONN) \ B=bwtraceboundary(...N,dir)
decorrstrech 對多通道圖像進行去相關處理
語法:S=decorrstretch(I) \ S=decorrstretch(I,TOL)
dicomdict 獲取或讀取DICOM文件
語法:dicomdict('set',dictionary) \ dictionary=dicomdict('get')
getline 用鼠標選擇ployline
語法:[x,y]=getline(fig) \ [x,y]=getline(ax) \ [x,y]=getline \ [x,y]=getline(...,'closed')
getpts 用鼠標選擇像素點
語法:[x,y]=getpts(fig) \ [x,y]=getpts(ax) \ [x,y]=getpts
getrect 用鼠標選擇矩陣
語法:rect=getrect(fig) \ rect=getrect(ax) \ rect=getrect(fig)
iccread 讀取ICC剖面
語法:P=iccread(filename)
im2java2d 將圖像轉換為Java緩沖圖像
語法:jimage=im2java2d(I) \ jimage=im2java2d(X,MAP)
imview 在圖像與藍旗中顯示圖像
語法:imview(I) \? imview(RGB) \ imview(X,map) \imview(I,range) \ imview(filename) \ imview(....'InitialMagnification',initial_mag) \ h=imview(...)? \? imview close all
ippl 檢查IPPL的存在
語法:TF=ippl \ [TF B]=ippl
iptdemos 顯示圖像處理工具箱中的索引圖像
lab2double、lab2unit16、lab2unit8 將L*a*b數據分別轉換為雙精度、16位數據、8位數據
makecform 創造一個色彩轉換結構
poly2mask 把多邊形區域轉換成mask區域
語法:BW=poly2mask(x,y,m,n)
unitlut 查找表中A像素值
語法:B=unitlut(A,LUT)
xyz2double、xyz2unit16 將顏色數據從XYZ轉換到雙精度、16進制。
語法:xyzd=xyz2double(XYZ) \ xyz16=xyz2unit16(xyz)
總結
以上是生活随笔為你收集整理的matlab图像处理命令(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab图像处理命令(一)
- 下一篇: 一种二维条码图像处理流程