MATLAB中圖像處理的一些簡單函數


 

 MATLAB中圖像處理的一些簡單函數


A、 imread
imread函數用於讀入各種圖像文件,其一般的用法為
[X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP分別為讀出的圖像數據和顏色表數據,fmt為圖像的格式,filename為讀取的圖像文件(可以加上文件的路徑)。例:[X,MAP]=imread(’flowers.tif’,’tif’);比較讀取二值圖像,灰度圖像,索引圖像,彩色圖像的X和MAP的特點,可以利用size函數用來顯示數組的維數,了解數據的特點。
B=size(a) 返回數組a 的維數。


B、 imwrite
imwrite函數用於輸出圖像,其語法格式為:
imwrite(X,map,filename,fmt)
imwrite(X,map,filename,fmt)按照fmt指定的格式將圖像數據矩陣X和調色板map寫入文件filename。

C、 imfinfo
imfinfo函數用於讀取圖像文件的有關信息,其語法格式為
imfinfo(filename,fmt)
imfinfo函數返回一個結構info,它反映了該圖像的各方面信息,其主要數據包括:文件名(路徑)、文件格式、文件格式版本號、文件的修改時間、文件的大小、文件的長度、文件的寬度、每個像素的位數、圖像的類型等。

 

2.MATLAB中圖像文件的顯示
imshow
imshow函數是最常用的顯示各種圖像的函數,其語法如下:
imshow(X,map)其中X是圖像數據矩陣,map是其對應的顏色矩陣,若進行圖像處理后不知道圖像數據的值域可以用[]代替map。(1) 二進制(二值)圖像顯示方法,在MATLAB中一幅二值圖像是uint8或雙精度的,該矩陣僅包含0和1。如果希望工具箱中的函數能將圖像理解為二進制的,那么所有數據都要是邏輯數據,必須對其進行設置(將所有數據標志均設置on).可以對數據利用“~”取反操作實現圖像逆轉即黑白反色。(2) 灰度圖像的顯示方法,正常情況下無需指定灰度圖像的調色板格式。可以是使用imshow函數指定要顯示灰度級數目,格式 imshow(I,n),n為指定的灰度級數目。用戶也可以指定數據的范圍,格式imshow(I,[low high])其中low 和high參數分別為數據數組的最小值和最大值。如果為空矩陣([]),那么imshow函數將自動進行數據標度。(3) 索引圖像,imshow(x,map)對於x的每個個像素,imshow顯示存儲map中相應行的顏色。(4)  RGB圖像的顯示,它直接對顏色進行描述而不使用調色板,格式imshow(RGB)。RGB(:,:,1) RGB(:,:,2)   RGB(:,:,3)(5) 特殊顯示,如多幅圖像的顯示,需要顯示多幅圖像時。可以使用figure語句,它的功能就是重新打開一個圖像顯示窗口。例:
I=imread(‘rice.tif’);
Imshow(I);
J=imread(‘flowers.tif’);
figure,imshow(J);
也可以將多幅圖像顯示在同一個單獨的圖像窗口中,有兩種方法:一種是聯合imshow和subplot函數;另一種是聯合使用subimage函數和subplot函數,subplot(m,n,p)這種格式將圖形窗口划分為m*n個矩形顯示區域並激活第p個顯示區域。

A
[x1,map1]=imread('trees.tif');
[x2,map2]=imread('forest.tif');
subplot(1,2,1),imshow(x1,map1)
subplot(1,2,2),imshow(x2,map2)
B
[x1,map1]=imread('trees.tif');
[x2,map2]=imread('forest.tif');
subplot(1,2,1),subimage(x1,map1)
subplot(1,2,2),subimage(x2,map2)
3.MATLAB中灰度直方圖的顯示


MATLAB圖像處理工具箱提供了imhist函數來計算和顯示圖像的直方圖,imhist函數的語法格式為:
imhist(I,n)
imhist(X,map)其中imhist(I,n)計算和顯示灰度圖像I的直方圖,n為指定的灰度級數目,默認值為256。imhist(X,map)計算和顯示索引色圖像X的直方圖,map為調色板。例:
I = imread('rice.tif');
imshow(I)
figure, imhist(I)
4.對比度增強如果原圖像f(x,y)的灰度范圍是[m,M],我們希望調整后的圖像g(x,y)的灰度范圍是[n,N],那么下述變換, ,就可以實現這一要求。
MATLAB圖像處理工具箱中提供的imadjust函數,可以實現上述的線性變換對比度增強。Imadjust函數的語法格式為:
J = imadjust(I,[low_in high_in],[low_out high_out])
J = imadjust(I,[low_in high_in],[low_out high_out])返回圖像I經過直方圖調整后的圖像J,[low_in high_in]為原圖像中要變換的灰度范圍,[low_out high_out]指定了變換后的灰度范圍。其詳細的用法可參見《計算機圖像處理與識別技術》。例:
I = imread('pout.tif');
J = imadjust(I,[0.3 0.7],[]);
imshow(I), figure, imshow(J)

5.圖像類型轉換:

圖像類型之間的轉換有時非常有用。MATLAB提供的圖像類型轉換函數

函數

功能

dither

使用抖動方法,根據灰度圖像船艦二進制圖像和根據RGB圖像創建索引圖像

 gray2ind

根據一幅灰度圖像創建索引圖像

 grayslice

使用閾值截取方法,根據一幅灰度圖像創建索引圖像

 im2bw

使用閾值截取方法,根據一幅灰度圖像,索引圖像或RGB圖像創建二進制圖像

 ind2gray

根據一幅索引圖像創建一幅灰度圖像

 ind2rgb

根據一幅索引圖像創建一幅RGB圖像

 mat2gray

通過數據縮放,在根據矩陣數據創建一幅灰度圖像

 rgb2gray

根據一幅RGB圖像創建一幅灰度圖像

 rgb2ind

根據一幅RGB圖像創建一幅索引圖像

 

上表中函數有類似的調用格式:函數的輸入參數是圖像數據矩陣(如果是索引圖像,那么輸入參數還包括調色板),返回值是轉換后的函數(包括索引函數的調色板),只有函數im2bw的調用格式不同,其輸入參數中還包括一個截取閾值,超過此閾值的像素被截取為1否則為0。示例:
A、load trees
BW = im2bw(X,map,0.4);
imview(X,map),imview(BW)B、
I = imread('snowflakes.png');
X = grayslice(I,16);
imview(I)
imview(X,jet(16))
6.MATLAB還提供了圖像存儲類型之間的轉換函數

這些函數包含im2doble、im2uint8和 im2uint16,這些函數可以自動的進行原始數據的重新標度和偏移.調用格式簡單,輸入為圖像矩陣,輸出為轉換后的圖像:如:以下命令將一個描述雙精度RGB1圖像的矩陣(數據范圍為[0,1]轉換為uint8的圖像矩陣([0,255]范圍內)RGB2=im2uint8(rgb1);也可以使用MATLAB函數對圖像存儲類型進行轉換。例如,double函數可以將uint8或 uint16的數據轉化為雙精度數據。存儲類型之間的轉變將改變matlab及其工具箱理解圖像數據的方式,如果用戶希望轉換后得到的數組能夠被正確的理解為圖像數據,那么轉換時需要重新標度或偏移數據。當使用較少的類型來描述數字圖像時,通常可能丟失用戶圖像的一些信息。
7.圖像格式之間的轉換

可以間接利用圖像讀寫函數來完成;首先使用imread函數按照原有的圖像格式進行圖像讀取,然后調用imwrite函數對圖像進行保存,並指定圖像的保存格式。如將BMP格式轉換為PNG格式,  bitmap=imread(‘mybitmap,bmp’,’bmp’)  imwrite(‘mybitmap,png’,’png’)

 

 

matlab圖像處理命令

二值圖像操作

 

色圖操作


brighten 亮/暗色圖
cmpermute 色圖中顏色的重排
colormap 設置色圖
imapprox 以較少的顏色來近似索引圖像
rgbplot 繪制RGB色圖

色彩空間變換

hsv2rgb 飽和色彩色圖HSV向紅綠藍色圖RGB轉換
ntsc2rgb 將NTSC制式值轉換到RGB顏色空間
rgb2hsv RGB色圖M向HSV色圖cmap轉換
rgb2ntsc 將RGB顏色空間轉換到NTSC制式
rgb2ycbcr 將RGB顏色空間轉換到YCBCR顏色空間
ycbcr2rgb 將YCBCR顏色空間轉換到RGB顏色空間
 

圖像類型判斷及其轉換

dither 用抖動法(dithering)轉換圖像
gray2ind 灰度圖像向索引圖像轉換
grayslice 設定閥值將灰度圖轉換為索引圖
isbw 圖像為二值圖像則返回真
isgray 圖像為灰度圖像則返回真
isind 圖像為索引圖像則返回真
isrgb 圖像為RGB圖像則返回真
im2bw 設定閥值將圖像轉換為值維圖像
im2double 將圖像數據陣列轉換為double型
im2uint8 將圖像數據陣列轉換為uint8型
im2uint16 將圖像數據陣列轉換為uint16型
ind2gray 索引圖像向灰度圖像轉換
ind2rgb 索引圖像向RGB圖像轉換
mat2rgb 將矩陣轉換為灰度圖
rgb2gray RGB圖像向灰度圖轉換
rgb2ind RGB圖像向索引圖像轉換

圖像處理演示函數

dctdemo 二維DCT圖像壓縮演示
edgedemo 邊緣檢測演示
firdemo 二維FIR濾波及濾波器演示
imadjdemo 灰度及調整和直方圖均衡演示
landsatdemo 陸地衛星顏色合成演示
nrfiltdemo 噪聲消除濾波演示
qtdemo 四叉樹分解演示
roidemo 特定區域處理演示

 圖像分析


edge 得到加強圖像的邊緣
qtdecomp 四叉樹分解
qtgetblk 得到四叉樹分解的塊值
qtsetblk 調整四叉樹分解的塊值

圖像增強

histeq 自動調整直方圖
imadjust 灰度級調整
imnoise 引入各種類型的噪聲
medfilt2 中值濾波
ordfilt2 執行二維階統計濾波
wiener2 維納濾波器的二維濾波

線性濾波conv2 圖像卷積
convmtx2 計算二維卷積矩陣
convn 圖像的n 維卷積
filter2 二維線性濾波
fspecial 產生預定義的濾波器
medfilt2 中值濾波
wiener2 維納濾波器的二維濾波
 

二維線性濾波器的設計

filter2二維線性濾波
fspecial 產生預定義的濾波器
fsample 生成濾波器
freqz2 計算二維濾波器的頻率響應
fsamp2 二維FIR濾波器的頻率采樣設計
fwind1 由用戶自定義的兩個一維窗口生成一個二維窗口濾波器
fwind2 由一個已知的二維窗口直接生成一個二維濾波器

hamming 創建一個一維窗口
freqspace 生成合適的頻率點陣矩陣
ftrans2 頻率變換

圖像變換

dct 離散余弦變換
dct2 計算二維離散余弦變換
dctmtx 計算離散余弦變換矩陣
dctmtx2 計算二維離散余弦變換矩陣
dctdemo 二維離散余弦變圖像壓縮矩陣
fft2 得到二維FFT的結果
fftn   N維FFT變換
fftshiftn    FFT變換結果的逆象限
iradon       Radon逆變換
idct 離散余弦離散余弦變換的逆變換
idct2 計算二維離散余弦離散余弦變換的逆變換
radon       Radon變換

鄰域及塊處理

blkproc 執行分塊操作
bestblk 選擇用於塊處理的塊尺寸
col2im 對矩陣的列進行塊重排
colfilt 利用列式函數進行鄰域操作
im2col 將圖像塊按列重排
nlfilter 執行常規滑動鄰域操作

圖像的區域處理

rolpoly 選定多邊形形狀的特定區域
roifilt2 對圖像特定區域進行濾波
roifill 指定區域的快速插值
roicolor 根據顏色進行
 圖像顯示

colorbar 對圖像增加顏色條
figure 在不同的圖像窗口顯示不同的圖像
getimage 從軸上得到圖像數據
montage 多貞圖像一次顯示
image 顯示圖像
imagesc 顯示亮度圖像
imcontour 顯示一幅圖畫的輪廊圖
immovie  多幀圖像轉換為電影
imshow 顯示各類圖像
subimage 在一幅圖形窗口中顯示多個圖像
subplot 在同一個圖形窗口中顯示多圖
truesize 調整圖像顯示的大小
warp 紋理乘圖功能
zoom 圖像的區域縮放

圖像文件數據輸入/輸出

imfinfo 查詢圖像文件信息
imread 從圖像文件中讀數據
imwrite 將數據寫入到圖像文件中

圖像的幾何操作

imcrop 裁剪余弦中的一部分
interp2 二維數據插補
imresize 同於改變圖像尺寸
imrotate 用於進行圖像的旋轉

像值與統計corr2 計算尺寸相同的兩個圖像矩陣的相關系數

applylut 利用查找表執行鄰域操作
bwarea 返回一幅二值圖像的面積
bweuler 對圖像的拓撲結構的測量
bwfill 進行區域的填充
bwlabel 對圖像中不同目標進行標注
bwmorph 一系列的膨脹與腐蝕操作
bwperim 決定二值圖像中目標對象的軸長
bwselect 對目標進行操作
dilate 二值圖像的膨脹
erode 二值圖像的腐蝕
makelut 創建查找表

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM