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;
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\');%均值濾波器
3、圖像的增強
①直方圖: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);
轉自:http://www.matlabfan.com/thread-700-1-1.html
下清單格中除了個别函數外,其餘函數都是圖像處理工具箱提供的關于圖像處理的函數,現摘錄到此以備查找。
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;
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\');%均值濾波器
3、圖像的增強
①直方圖: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);
轉自:http://www.matlabfan.com/thread-700-1-1.html
下清單格中除了個别函數外,其餘函數都是圖像處理工具箱提供的關于圖像處理的函數,現摘錄到此以備查找。
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;
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\');%均值濾波器
3、圖像的增強
①直方圖: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);
轉自:http://www.matlabfan.com/thread-700-1-1.html
下清單格中除了個别函數外,其餘函數都是圖像處理工具箱提供的關于圖像處理的函數,現摘錄到此以備查找。
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
colorbar | 顔色條顯示 | montage | 按矩形剪輯方式顯示多幀圖像 |
getimage | 從坐标系中擷取圖像資料 | immovie | 從多幀索引圖像中制作電影 |
image | 建立顯示圖像 | movie | 播放電影 |
subimage | 在同一圖像視窗顯示多個圖像 | trueszie | 調整圖像顯示大小 |
imagesc | 調整資料并顯示圖像 | warp | 顯示圖像為紋理映射表面 |
imshow | 圖像顯示 | zoom | 二維圖形放大或縮小 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
imread | 圖像檔案讀入 | load | 将以mat為擴充名的圖像檔案調入到記憶體 |
imwrite | 圖像寫出 | save | 将記憶體變量中圖像儲存到mat檔案中 |
dicomread | 讀取DICOM圖像 | dicomwrite | 輸出DICOM圖像 |
iminfo | 檢視圖形資訊 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
impixel | 傳回標明圖像像素顔色值 | imcontour | 畫圖像資料輪廓(等高線,等值線) |
improfile | 圖像中沿一個路徑的資料值計算 | imhist | 求圖像資料直方圖 |
mean2 | 求均值 | corr2 | 求相關系數 |
std2 | 求标準差 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
edge | 灰階圖像邊緣檢測 | qtgetblk | 獲得四叉樹分解塊值 |
qtecomp | 執行四叉樹分解 | qtsetblk | 設定四叉樹分解塊值 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
imadjust | 對比度調整 | medfilt2 | 二維中值濾波器 |
histeq | 直方圖均衡 | ordfilt2 | 順序統計濾波器 |
imnoise | 給圖像增加噪聲 | wiener2 | 二維自适應除噪濾波器 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
conv2 | 二維卷積 | freqz2 | 計算二維頻率響應 |
convmtx2 | 計算二維卷積矩陣 | fsamp2 | 用頻率抽樣設計二維FIR濾波器 |
convn | 多元卷積 | ftrans | 用頻率抽樣轉換二維FIRlbq |
filter2 | 二維線性數字濾波器 | fwind1 | 用一維視窗方法設計二維FIR濾波器 |
fspecial | 産生預定義濾波器 | fwind2 | 用二維視窗方法設計二維FIR濾波器 |
frespace | 确定二維頻率響應間隔 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
fft | 計算一維快速Fourier變換 | dct | 計算離散餘弦變換 |
ifft | 計算一維FFT的逆變換 | idct | 計算離散反餘弦變換 |
fft2 | 計算二維FFT | dct2 | 計算2D離散餘弦變換 |
ifft2 | 計算二維逆FFT | idct2 | 計算2D反離散餘弦變換 |
fftn | 計算多元FFT | dctmtx | 計算TCT矩陣 |
ifftn | 計算多元逆FFT | radon | 計算Radon變換 |
fftshift | 直流分量移到頻譜中心 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
bestblk | 選擇塊處理的塊大小 | colfilt | 使用列方向函數進行領域運算 |
blkproc | 對圖像實行不同的塊處理 | im2col | 重排圖像塊為矩陣列 |
col2im | 重排矩陣列成圖像塊 | nlfilter | 進行一般領域計算 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
applylut | 使用查找表進行領域操作 | bwperim | 确定二值圖像中的目标邊界 |
bwarea | 計算二值圖像中的目标區域 | bwselect | 選擇二值圖像中的目标 |
bweuler | 計算二值圖像中的歐拉數 | dilate | 對二值圖像進行膨脹計算 |
bwfill | 二值圖像背景區域填充 | erode | 對二值圖像進行寝蝕運算 |
bwlabel | 辨別二值圖像中的連接配接成分 | makelut | 構造查找表(applylut)使用 |
bwmorph | 二值圖像形态運算 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
roicolor | 根據顔色選擇要處理的區域 | roifilt2 | 對要處理區域濾波 |
roifill | 在任意區域内平滑內插補點 | roipoly | 選擇要處理的多邊形區域 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
imcrop | 圖像剪裁 | imrotate | 圖像旋轉 |
imresize | 圖像大小調整 | interp2 | 二維資料內插補點 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
brighten | 顔色圖像變亮或變暗 | colormap | 設定擷取圖 |
cmpermute | 重新排列顔色圖中的顔色 | imapprox | 由顔色較少的圖像近似索引圖像 |
cmunique | 尋找唯一的顔色圖及相應的圖像 | rgbplot | 繪制RGB顔色圖 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
hsv2rgb | 将HSV顔色轉化為RGB顔色值 | mtsc2rgb | 将NTSC值轉換為RGB顔色空間值 |
rgb2hsv | 将RGB顔色值轉換為HSV顔色值 | rgb2ntsc | 将RGB值轉換為NTSC顔色空間值 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
colorbar | 顔色條顯示 | montage | 按矩形剪輯方式顯示多幀圖像 |
getimage | 從坐标系中擷取圖像資料 | immovie | 從多幀索引圖像中制作電影 |
image | 建立顯示圖像 | movie | 播放電影 |
subimage | 在同一圖像視窗顯示多個圖像 | trueszie | 調整圖像顯示大小 |
imagesc | 調整資料并顯示圖像 | warp | 顯示圖像為紋理映射表面 |
imshow | 圖像顯示 | zoom | 二維圖形放大或縮小 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
imread | 圖像檔案讀入 | load | 将以mat為擴充名的圖像檔案調入到記憶體 |
imwrite | 圖像寫出 | save | 将記憶體變量中圖像儲存到mat檔案中 |
dicomread | 讀取DICOM圖像 | dicomwrite | 輸出DICOM圖像 |
iminfo | 檢視圖形資訊 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
impixel | 傳回標明圖像像素顔色值 | imcontour | 畫圖像資料輪廓(等高線,等值線) |
improfile | 圖像中沿一個路徑的資料值計算 | imhist | 求圖像資料直方圖 |
mean2 | 求均值 | corr2 | 求相關系數 |
std2 | 求标準差 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
edge | 灰階圖像邊緣檢測 | qtgetblk | 獲得四叉樹分解塊值 |
qtecomp | 執行四叉樹分解 | qtsetblk | 設定四叉樹分解塊值 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
imadjust | 對比度調整 | medfilt2 | 二維中值濾波器 |
histeq | 直方圖均衡 | ordfilt2 | 順序統計濾波器 |
imnoise | 給圖像增加噪聲 | wiener2 | 二維自适應除噪濾波器 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
conv2 | 二維卷積 | freqz2 | 計算二維頻率響應 |
convmtx2 | 計算二維卷積矩陣 | fsamp2 | 用頻率抽樣設計二維FIR濾波器 |
convn | 多元卷積 | ftrans | 用頻率抽樣轉換二維FIRlbq |
filter2 | 二維線性數字濾波器 | fwind1 | 用一維視窗方法設計二維FIR濾波器 |
fspecial | 産生預定義濾波器 | fwind2 | 用二維視窗方法設計二維FIR濾波器 |
frespace | 确定二維頻率響應間隔 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
fft | 計算一維快速Fourier變換 | dct | 計算離散餘弦變換 |
ifft | 計算一維FFT的逆變換 | idct | 計算離散反餘弦變換 |
fft2 | 計算二維FFT | dct2 | 計算2D離散餘弦變換 |
ifft2 | 計算二維逆FFT | idct2 | 計算2D反離散餘弦變換 |
fftn | 計算多元FFT | dctmtx | 計算TCT矩陣 |
ifftn | 計算多元逆FFT | radon | 計算Radon變換 |
fftshift | 直流分量移到頻譜中心 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
bestblk | 選擇塊處理的塊大小 | colfilt | 使用列方向函數進行領域運算 |
blkproc | 對圖像實行不同的塊處理 | im2col | 重排圖像塊為矩陣列 |
col2im | 重排矩陣列成圖像塊 | nlfilter | 進行一般領域計算 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
applylut | 使用查找表進行領域操作 | bwperim | 确定二值圖像中的目标邊界 |
bwarea | 計算二值圖像中的目标區域 | bwselect | 選擇二值圖像中的目标 |
bweuler | 計算二值圖像中的歐拉數 | dilate | 對二值圖像進行膨脹計算 |
bwfill | 二值圖像背景區域填充 | erode | 對二值圖像進行寝蝕運算 |
bwlabel | 辨別二值圖像中的連接配接成分 | makelut | 構造查找表(applylut)使用 |
bwmorph | 二值圖像形态運算 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
roicolor | 根據顔色選擇要處理的區域 | roifilt2 | 對要處理區域濾波 |
roifill | 在任意區域内平滑內插補點 | roipoly | 選擇要處理的多邊形區域 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
imcrop | 圖像剪裁 | imrotate | 圖像旋轉 |
imresize | 圖像大小調整 | interp2 | 二維資料內插補點 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
brighten | 顔色圖像變亮或變暗 | colormap | 設定擷取圖 |
cmpermute | 重新排列顔色圖中的顔色 | imapprox | 由顔色較少的圖像近似索引圖像 |
cmunique | 尋找唯一的顔色圖及相應的圖像 | rgbplot | 繪制RGB顔色圖 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
hsv2rgb | 将HSV顔色轉化為RGB顔色值 | mtsc2rgb | 将NTSC值轉換為RGB顔色空間值 |
rgb2hsv | 将RGB顔色值轉換為HSV顔色值 | rgb2ntsc | 将RGB值轉換為NTSC顔色空間值 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
colorbar | 顔色條顯示 | montage | 按矩形剪輯方式顯示多幀圖像 |
getimage | 從坐标系中擷取圖像資料 | immovie | 從多幀索引圖像中制作電影 |
image | 建立顯示圖像 | movie | 播放電影 |
subimage | 在同一圖像視窗顯示多個圖像 | trueszie | 調整圖像顯示大小 |
imagesc | 調整資料并顯示圖像 | warp | 顯示圖像為紋理映射表面 |
imshow | 圖像顯示 | zoom | 二維圖形放大或縮小 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
imread | 圖像檔案讀入 | load | 将以mat為擴充名的圖像檔案調入到記憶體 |
imwrite | 圖像寫出 | save | 将記憶體變量中圖像儲存到mat檔案中 |
dicomread | 讀取DICOM圖像 | dicomwrite | 輸出DICOM圖像 |
iminfo | 檢視圖形資訊 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
impixel | 傳回標明圖像像素顔色值 | imcontour | 畫圖像資料輪廓(等高線,等值線) |
improfile | 圖像中沿一個路徑的資料值計算 | imhist | 求圖像資料直方圖 |
mean2 | 求均值 | corr2 | 求相關系數 |
std2 | 求标準差 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
edge | 灰階圖像邊緣檢測 | qtgetblk | 獲得四叉樹分解塊值 |
qtecomp | 執行四叉樹分解 | qtsetblk | 設定四叉樹分解塊值 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
imadjust | 對比度調整 | medfilt2 | 二維中值濾波器 |
histeq | 直方圖均衡 | ordfilt2 | 順序統計濾波器 |
imnoise | 給圖像增加噪聲 | wiener2 | 二維自适應除噪濾波器 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
conv2 | 二維卷積 | freqz2 | 計算二維頻率響應 |
convmtx2 | 計算二維卷積矩陣 | fsamp2 | 用頻率抽樣設計二維FIR濾波器 |
convn | 多元卷積 | ftrans | 用頻率抽樣轉換二維FIRlbq |
filter2 | 二維線性數字濾波器 | fwind1 | 用一維視窗方法設計二維FIR濾波器 |
fspecial | 産生預定義濾波器 | fwind2 | 用二維視窗方法設計二維FIR濾波器 |
frespace | 确定二維頻率響應間隔 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
fft | 計算一維快速Fourier變換 | dct | 計算離散餘弦變換 |
ifft | 計算一維FFT的逆變換 | idct | 計算離散反餘弦變換 |
fft2 | 計算二維FFT | dct2 | 計算2D離散餘弦變換 |
ifft2 | 計算二維逆FFT | idct2 | 計算2D反離散餘弦變換 |
fftn | 計算多元FFT | dctmtx | 計算TCT矩陣 |
ifftn | 計算多元逆FFT | radon | 計算Radon變換 |
fftshift | 直流分量移到頻譜中心 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
bestblk | 選擇塊處理的塊大小 | colfilt | 使用列方向函數進行領域運算 |
blkproc | 對圖像實行不同的塊處理 | im2col | 重排圖像塊為矩陣列 |
col2im | 重排矩陣列成圖像塊 | nlfilter | 進行一般領域計算 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
applylut | 使用查找表進行領域操作 | bwperim | 确定二值圖像中的目标邊界 |
bwarea | 計算二值圖像中的目标區域 | bwselect | 選擇二值圖像中的目标 |
bweuler | 計算二值圖像中的歐拉數 | dilate | 對二值圖像進行膨脹計算 |
bwfill | 二值圖像背景區域填充 | erode | 對二值圖像進行寝蝕運算 |
bwlabel | 辨別二值圖像中的連接配接成分 | makelut | 構造查找表(applylut)使用 |
bwmorph | 二值圖像形态運算 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
roicolor | 根據顔色選擇要處理的區域 | roifilt2 | 對要處理區域濾波 |
roifill | 在任意區域内平滑內插補點 | roipoly | 選擇要處理的多邊形區域 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
imcrop | 圖像剪裁 | imrotate | 圖像旋轉 |
imresize | 圖像大小調整 | interp2 | 二維資料內插補點 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
brighten | 顔色圖像變亮或變暗 | colormap | 設定擷取圖 |
cmpermute | 重新排列顔色圖中的顔色 | imapprox | 由顔色較少的圖像近似索引圖像 |
cmunique | 尋找唯一的顔色圖及相應的圖像 | rgbplot | 繪制RGB顔色圖 |
函數名 | 功能說明 | 函數名 | 功能說明 |
---|---|---|---|
hsv2rgb | 将HSV顔色轉化為RGB顔色值 | mtsc2rgb | 将NTSC值轉換為RGB顔色空間值 |
rgb2hsv | 将RGB顔色值轉換為HSV顔色值 | rgb2ntsc | 将RGB值轉換為NTSC顔色空間值 |