1. 程式人生 > >學習筆記(2)---Matlab 圖像處理相關函數命令大全

學習筆記(2)---Matlab 圖像處理相關函數命令大全

緩沖 操作 .... 命令 tor ace trac cati msh

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)

學習筆記(2)---Matlab 圖像處理相關函數命令大全