1. 程式人生 > >MATLAB中影象處理的函式

MATLAB中影象處理的函式

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 建立查詢表

相關推薦

MATLAB影象處理函式

MATLAB 影象處理命令  MATLAB中影象處理的一些簡單函式 A、 imread imread函式用於讀入各種影象檔案,其一般的用法為 [X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP分別為讀出的影象資料和顏色表資料,fmt為影象的格

應用PHP GD庫影象處理函式製作驗證碼

<?php //開啟session,之後會把驗證碼存入session,然後在後端與使用者輸入的驗證碼對比 session_start(); //新建一個真彩色影象 $image=imagecreatetruecolor(100, 30); //定義白色

影象處理函式詳解——padarray(matlab)

轉自殘雪飛月 功能:填充影象或填充陣列。 用法:B = padarray(A,padsize,padval,direction)        A為輸入影象,B為填充後的影象,padsize給出了給出了填充的行數和列數,通常用[r c]來表示。padval和directio

MATLAB數字影象處理基本操作函式

影象讀取:I = imread('mao.jpg'); 影象顯示:imshow(I) 彩色轉灰度:I = rgb2gray(I); 影象縮放:X1 = imresize(I,2);%放大兩倍 影象旋轉:B = imrotate(A,angle); 插值: 1、最

Matlab影象處理函式燴(二)

60.imnoise 功能:增加影象的渲染效果. 語法: J = imnoise(I,type) J = imnoise(I,type,parameters) 舉例 I = imread('eight.tif'); J = i

2014.02.20 分水嶺 距離變換 Matlab影象處理函式

用法:B = imfilter(A,H)B = imfilter(A,H,option1,option2,...)   或寫作g = imfilter(f, w, filtering_mode, boundary_options, size_options)其中,f為輸入影象,w為濾波掩模,g為濾波後圖像。

MatLab影象處理計算機視覺有用的小函式

部落格上有不少人造輪子,明明一句話就能解決的事,非得花一上午的時間去for迴圈??這是初學資料結構的萌新的做法,如果你已經編寫了足夠程式碼,還是特別喜歡for迴圈去,那你用什麼時間看論文,做研究呢?所以我想收集一些有用的函式。 看你的標籤中是否包含某一類: A =

Matlab 的copyfile函式使用小記

       因為最近使用labelImg軟體標註訓練圖片,我把標記好的圖片和標註檔案放置在一個資料夾下,由於有多批次圖片標註,每標註一批放在一個資料夾下,最終放置的資料夾如下: 現在我需要把這些資料夾下的圖片和標註檔案集中到兩個檔案ImSet(

Matlab 的movefile函式使用小記

       因為最近使用labelImg軟體標註訓練圖片,如果圖片有目標區域就標註,沒有當然就不用就標註了,標註檔案儲存在當前圖片資料夾下,這樣當標註完一批圖片後你將看到,好多圖片和圖片對應的標註檔案(.xml格式),還有沒有標註的圖片: &n

matlab影象操作函式的詳解(筆記1)

matlab對影象操作函式的詳解 一. 讀寫影象檔案 1. imread imread函式用於讀入各種影象檔案,如:a=imread('e:\w01.tif') 注:計算機E盤上要有w01相應的.tif檔案。 2. imwrite imwrite函式用於寫入影象檔案,如:im

使用 matlab 數字影象處理(九)—— 去卷積(deconvolution,逆濾波復原)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

matlab的mvnrnd函式用法

使用matlab來實現: clear all;close all; clc; % 第一組資料 mul=[0,0]; % 均值 S1=[.1 0;0 .1]; % 協方差 data1=mvnrnd(mul, S1, 100); % 產生高斯分佈資料 % 第二組資料 mu2=[1.25 1.25

15,matlab的mean函式,求平均

(1) help mean mean   Average or mean value.     S = mean(X) is the mean value of the elements in X if X is a vector.  &nbs

MATLAB影象處理實現

下面簡單介紹一下MATLAB中的影象處理過程: 1、開啟MATLAB主介面後,在編輯器中寫入以下程式碼: I=imread('xian.bmp'); J=double(I); J=-J+(256-1);       

【181129】VC++ GDI+程式設計必備的原始碼庫_各種繪圖與影象處理函式原始碼

VC++ GDI+程式設計必備的原始碼庫,包含GDI+各個方面的程式設計示例。 以下是各種功能列表: 畫筆 從畫刷中構造畫筆 自定義線型 畫筆的對齊方式 畫筆的縮放與旋轉 畫筆的線帽屬性 畫筆的透明度支援

Matlab的stretchlim函式詳解

imadjust函式是MATLAB的一個工具箱函式,一般的語法呼叫格式為: f1=imadjust(f,[low_in  high_in],[low_out  high_out],gamma) (注:本文所述影象資料均為Uint8,對於Matlab,矩陣中的一個元素即是一

Matlab插值函式彙總和使用說明

注:該文從連結地址http://blog.sciencenet.cn/blog-457143-679275.html轉載。 MATLAB中的插值函式為interp1,其呼叫格式為:  yi= interp1(x,y,xi,’method’)            其中x,y為插值點,yi為在被插值點

Matlab使用plot函式動態畫圖方法總結

原文 Matlab除了強大的矩陣運算,模擬分析外,繪圖功能也是相當的強大,靜態畫圖沒什麼問題,由於Matlab本身的多執行緒程式設計缺陷,想要動態的畫圖,並且能夠很好的在GUI中得到控制,還不是一件很容易的事情,下面總結幾種方法。一. AXIS 移動座標系     這種方法

keras影象處理ImageDataGenerator用法

featurewise_center:布林值,使輸入資料集去中心化(均值為0), 按feature執行。 samplewise_center:布林值,使輸入資料的每個樣本均值為0。 featurewise_std_normalization:布林值,將輸入除以資料集的標準差以完成標準化, 按feature執

OpenCV 影象處理類,Mat類和Ipllmage類

 Mat類是OpenCV 中最核心的類,全稱是Matrix,意為矩陣或者陣列的意思,該類的宣告在標頭檔案opencv2\core\core.hpp中,   Mat 類的建構函式如下:  Mat(int rows,int cols,int type)  其中rows代表矩