MATLAB图像处理工具箱函数

 

 

附录  MATLAB图像处理工具箱函数

 

 

表1通用函数

函数

功能

语法

colorbar

显示颜色条

colorbar

colorbar(...,'peer',axes_handle)

colorbar(axes_handle)

colorbar('location')

colorbar(...,'PropertyName',propertyvalue)

cbar_axes = colorbar(...)

getimage

从坐标轴取得图像数据

A = getimage(h)

[x,y,A] = getimage(h)

[...,A,flag] = getimage(h)

[...] = getimage

image

创建并显示图像对象

image(C)

image(x,y,C)

image(...,'PropertyName',PropertyValue,...)

image('PropertyName',PropertyValue,...) Formal syntax - PN/PV only

handle = image(...)

imagesc

按图像显示数据矩阵

imagesc(C)

imagesc(x,y,C)

imagesc(...,clims)

h = imagesc(...)

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(…)

imview

利用图像浏览器显示图像

imview(I)

imview(RGB)

imview(X,map)

imview(I,range)

imview(filename)

imview(...,'InitialMagnification',initial_mag)

h = imview(...)

imview close all

montage

在矩形框中同时显示多帧图像

montage(I)

montage(BW)

montage(X,map)

montage(RGB)

h = montage(...)

immovie

创建多帧索引色图像的电影动画

mov = immovie(X,map)

mov = immovie(RGB)

subimage

在一个图形中显示多个图像,结合函数subplot使用

subimage(X,map)

subimage(I)

subimage(BW)

subimage(RGB)

subimage(x,y,...)

h = subimage(...)

truesize

调整图像显示尺寸

truesize(fig,[mrows mcols])

truesize(fig)

wrap

将图像显示到纹理映射表面

warp(X,map)

warp(I,n)

warp(BW)

warp(RGB)

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)

表2图像文件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, GIF, ICO, and TIFF only)

[...] = imread(..., 'PixelRegion', { ROWS, COLS })  (TIFF only)

[...] = imread(...,'frames',idx) (GIF only)

[...] = imread(...,ref)   (HDF only)

[...] = imread(...,'BackgroundColor',BG)

(PNG only)

[A,map,alpha] = imread(...)

(ICO, CUR, and PNG only)

imwrite

把图像写入图像文件中

imwrite(A,filename,fmt)

imwrite(X,map,filename,fmt)

imwrite(...,filename)

imwrite(...,Param1,Val1,Param2,Val2...)


表3空间变换函数

函数

功能

语法

findbounds

为空间变换寻找输出边界

outbounds = findbounds(TFORM,inbounds)

fliptform

切换空间变换结构的输入和输出角色

TFLIP = fliptform(T)

imcrop

剪切图像

I2 = imcrop(I)

X2 = imcrop(X,map)

RGB2 = imcrop(RGB)

I2 = imcrop(I,rect)

X2 = imcrop(X,map,rect)

RGB2 = imcrop(RGB,rect)

[...] = imcrop(x,y,...)

[A,rect] = imcrop(...)

[x,y,A,rect] = imcrop(...)

imresize

图像缩放

B = imresize(A,m)

B = imresize(A,m,method)

B = imresize(A,[mrows ncols],method)

 

B = imresize(...,method,n)

B = imresize(...,method,h)

imrotate

图像旋转

B = imrotate(A,angle)

B = imrotate(A,angle,method)

B = imrotate(A,angle,method,bbox)

interp2

2-D数据插值

ZI = interp2(X,Y,Z,XI,YI)

ZI = interp2(Z,XI,YI)

ZI = interp2(Z,ntimes)

ZI = interp2(X,Y,Z,XI,YI,method)

imtransform

对图像进行2-D空间变换

B = imtransform(A,TFORM)

B = imtransform(A,TFORM,INTERP)

[B,XDATA,YDATA] = imtransform(...)

[B,XDATA,YDATA] = imtransform(..., param1, val1, param2, val2,...)

makeresampler

生成重采样结构

R = makeresampler(interpolant,padmethod)

maketform

生成几何变换结构

T = maketform(transformtype,...)

tformarray

多维数组的空间变换

B = tformarray(A, T, R, TDIMS_A, TDIMS_B, TSIZE_B, TMAP_B,F)

tformfwd

正向空间变换

[X,Y] = tformfwd(T,U,V)

[X1,X2,X3,...] = tformfwd(T,U1,U2,U3,...)

X = tformfwd(T,U)

[X1,X2,X3,...] = tformfwd(T,U)

X = tformfwd(T,U1,U2,U3,...)

tforminv

逆向空间变换

U = tforminv(X,T)

表4像素和统计处理函数

函数

功能

语法

corr2

计算两个矩阵的2-D相关系数

r = corr2(A,B)

imcontour

创建图像的轮廓图

imcontour(I)

imcontour(I,n)

imcontour(I,v)

imcontour(x,y,...)

imcontour(...,LineSpec)

[C,h] = imcontour(...)

imhist

显示图像的直方图

imhist(I,n)

imhist(X,map)

[counts,x] = imhist(...)

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,X,map,xi,yi)

P = impixel(x,y,RGB,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

pixval off

pixval

pixval(fig,option)

pixval(ax,option)

pixval(H,option)

regionprops

得到图像区域属性

STATS = regionprops(L,properties)

std2

计算矩阵元素的标准偏移

b = std2(A)

表5图像分析函数

函数

功能

语法

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',...)

qtdecomp

执行四叉树分解

S = qtdecomp(I)

S = qtdecomp(I,threshold)

S = qtdecomp(I,threshold,mindim)

S = qtdecomp(I,threshold,[mindim maxdim])

S = qtdecomp(I,fun)

S = qtdecomp(I,fun,P1,P2,...)

qtgetblk

获取四叉树分解中的数组块值

[vals,r,c] = qtgetblk(I,S,dim)

[vals,idx] = qtgetblk(I,S,dim)

qtsetblk

设置四叉树分解中的数组块值

J = qtsetblk(I,S,dim,vals)

表6图像增强函数

函数

功能

语法

adapthisteq

执行对比度受限的直方图均衡

J = adapthisteq(I)

J = adapthisteq(I,param1,val1,param2,val2...)

decorrstretch

对多通道图像应用解卷积延拓

S = decorrstretch(I)

S = decorrstretch(I,TOL)

histeq

用直方图均等化增强对比度

J = histeq(I,hgram)

J = histeq(I,n)

[J,T] = histeq(I,...)

newmap = histeq(X,map,hgram)

newmap = histeq(X,map)

[newmap,T] = histeq(X,...)

imadjust

调整图像灰度值或颜色映射表

J = imadjust(I)

J = imadjust(I,[low_in; high_in],[low_out; high_out])

J = imadjust(...,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)

stretchlim

得到图像对比度延拓的灰度上下限

LOW_HIGH = stretchlim(I,TOL)

LOW_HIGH = stretchlim(RGB,TOL)

wiener2

进行二维适应性去噪滤波

J = wiener2(I,[m n],noise)

[J,noise] = wiener2(I,[m n])

表7线性滤波函数

函数

功能

语法

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)

imfilter

多维图像滤波

B = imfilter(A,H)

B = imfilter(A,H,option1,option2,...)

表8线性二维滤波器设计函数

函数

功能

语法

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,f1,f2] = freqz2(h,[n2 n1])

[H,f1,f2] = freqz2(h)

[H,f1,f2] = freqz2(h,f1,f2)

[...] = 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)

 

表9图像变换函数

函数

功能

语法

dct2

进行二维离散余弦变换

B = dct2(A)

B = dct2(A,m,n)

B = dct2(A,[m n])

dctmtx

计算离散余弦变换矩阵

D = dctmtx(n)

fft2

进行二维快速傅立叶变换

Y = fft2(X)

Y = fft2(X,m,n)

fftn

进行n维快速傅立叶变换

Y = fftn(X)

Y = fftn(X,siz)

fftshift

转换快速傅立叶变换的输出象限

Y = fftshift(X)

Y = fftshift(X,dim)

idct2

计算二维逆离散余弦变换

B = idct2(A)

B = idct2(A,m,n)

B = idct2(A,[m n])

ifft2

计算二维逆快速傅立叶变换

Y = ifft2(X)

Y = ifft2(X,m,n)

y = ifft2(..., 'nonsymmetric')

y = ifft2(..., 'nonsymmetric')

ifftn

计算n维逆快速傅立叶变换

Y = ifftn(X)

Y = ifftn(X,siz)

y = ifftn(..., 'nonsymmetric')

y = ifftn(..., 'nonsymmetric')

iradon

逆Radon变换

I = iradon(R,theta)

I = iradon(R, theta, interp, filter, frequency_scaling, output_size)

[I,H] = iradon(...)

phantom

产生一个头部幻影图像

P = phantom(def,n)

P = phantom(E,n)

[P,E] = phantom(...)

radon

计算Radon变换

R=radon(I,theta)

[R,xp]=radon(…)

fanbeam

计算扇形投影变换

F = fanbeam(I,D)

F = fanbeam(...,param1,val1,param1,val2,...)

[F,sensor_positions,fan_rotation_angles] = fanbeam(...)

表10边沿和块处理函数

函数

功能

语法

bestblk

确定进行块操作的块大小

siz = bestblk([m n],k)

[mb,nb] = bestblk([m n],k)

blkproc

实现图像的非重叠(distinct)块操作

B = blkproc(A,[m n],fun)

B = blkproc(A,[m n],fun,P1,P2,...)

B=blkproc(A,[m n],[mborder nborder], fun, ...)

B = blkproc(A,'indexed',...)

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], block_type, fun,...)

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',...)

 


表11图像形态学操作函数

函数

功能

语法

applylut

在二值图像中利用查找表进行邻域操作

A = applylut(BW,LUT)

bwarea

计算二值图像的对象面积

total = bwarea(BW)

bweuler

计算二值图像的欧拉数

eul = bweuler(BW,n)

bwhitmiss

执行二值图像的击中和击不中操作

BW2 = bwhitmiss(BW1,SE1,SE2)

BW2 = bwhitmiss(BW1,INTERVAL)

bwlabel

标注二值图像中已连接的部分

L = bwlabel(BW,n)

[L,num] = bwlabel(BW,n)

bwmorph

二值图像的通用形态学操作

BW2 = bwmorph(BW,operation)

BW2 = bwmorph(BW,operation,n)

bwperim

计算二值图像中对象的周长

BW2 = bwperim(BW1)

BW2 = bwperim(BW1,CONN)

bwselect

在二值图像中选择对象

BW2 = bwselect(BW,c,r,n)

BW2 = bwselect(BW,n)

[BW2,idx] = bwselect(...)

BW2 = bwselect(x,y,BW,xi,yi,n)

[x,y,BW2,idx,xi,yi] = bwselect(...)

makelut

创建用于applylut函数的查找表

lut = makelut(fun,n)

lut = makelut(fun,n,P1,P2,...)

bwdist

距离变换

D = bwdist(BW)

[D,L] = bwdist(BW)

[D,L] = bwdist(BW,METHOD)

imbothat

执行形态学的闭包运算

IM2 = imbothat(IM,SE)

IM2 = imbothat(IM,NHOOD)

imclose

图像的闭运算

IM2 = imclose(IM,SE)

IM2 = imclose(IM,NHOOD)

imopen

图像的开运算

IM2 = imopen(IM,SE)

IM2 = imopen(IM,NHOOD)

imdilate

图像的膨胀

IM2 = imdilate(IM,SE)

IM2 = imdilate(IM,NHOOD)

IM2 = imdilate(IM,SE,PACKOPT)

IM2 = imdilate(...,PADOPT)

imerode

图像的腐蚀

IM2 = imerode(IM,SE)

IM2 = imerode(IM,NHOOD)

IM2 = imerode(IM,SE,PACKOPT,M)

IM2 = imerode(...,PADOPT)

imfill

填充图像区域

BW2 = imfill(BW,locations)

BW2 = imfill(BW,'holes')

I2 = imfill(I)

BW2 = imfill(BW)

[BW2 locations] = imfill(BW)

BW2 = imfill(BW,locations,CONN)

BW2 = imfill(BW,CONN,'holes')

I2 = imfill(I,CONN)

imtophat

用开运算后的图像减去原图像

IM2 = imtophat(IM,SE)

IM2 = imtophat(IM,NHOOD)

strel

创建形态学结构元素

SE = strel(shape,parameters)

表12区域处理函数

函数

功能

语法

roicolor

选择感兴趣的颜色区

BW = roicolor(A,low,high)

BW = roicolor(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(...)

 

表13图像代数操作

函数

功能

语法

imadd

加运算

Z = imadd(X,Y)

imsubtract

减运算

Z = imsubtract(X,Y)

immultiply

乘运算

Z = immultiply(X,Y)

imdivide

除运算

Z = imdivide(X,Y)

表14颜色空间转换函数

函数

功能

语法

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)

表15图像类型和类型转换函数

函数

功能

语法

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(I)

RGB2 = im2double(RGB)

I = im2double(BW)

X2 = im2double(X,'indexed')

double

转换数据为双精度类型

double(X)

uint8

转换数据为8位无符号整型

I = uint8(X)

im2uint8

转换图像阵列为8位为无符号整型

I2 = im2uint8(I)

RGB2 = im2uint8(RGB)

I = im2uint8(BW)

X2 = im2uint8(X,'indexed')

im2uint16

转换图像阵列为16位为无符号整型

I2 = im2uint16(I)

RGB2 = im2uint16(RGB)

I = im2uint16(BW)

X2 = im2uint16(X,'indexed')

uint16

转换数据为16位无符号整型

I = uint16(X)

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)

 


表A.16图像复原函数

函数

功能

语法

deconvwnr

用维纳滤波复原图像

J = deconvwnr(I,PSF)

J = deconvwnr(I,PSF,NSR)

J = deconvwnr(I,PSF,NCORR,ICORR)

deconvreg

用最小约束二乘滤波复原图像

J = deconvreg(I,PSF)

J = deconvreg(I,PSF,NOISEPOWER)

J = deconvreg(I, PSF, NOISEPOWER, LRANGE )

J = deconvreg(I, PSF, NOISEPOWER, LRANGE, REGOP)

[J, LAGRA] = deconvreg(I,PSF,...)

deconvlucy

用Richardson-Lucy滤波复原图像

J = deconvlucy(I,PSF)

J = deconvlucy(I,PSF,NUMIT)

J = deconvlucy(I,PSF,NUMIT,DAMPAR)

J = deconvlucy(I, PSF, NUMIT, DAMPAR, WEIGHT)

J = deconvlucy(I, PSF, NUMIT, DAMPAR, WEIGHT, READOUT)

J = deconvlucy(I, PSF, NUMIT, DAMPAR, WEIGHT, READOUT, SUBSMPL)

deconvblind

用盲卷积滤波复原图像

[J,PSF] = deconvblind(I,INITPSF)

[J,PSF] = deconvblind(I,INITPSF,NUMIT)

[J,PSF] = deconvblind(I, INITPSF, NUMIT, DAMPAR)

[J,PSF] = deconvblind(I, INITPSF, NUMIT, DAMPAR, WEIGHT)

[J,PSF] = deconvblind(I, INITPSF, NUMIT, DAMPAR, WEIGHT, READOUT )

[J,PSF] = deconvblind(..., FUN, P1, P2, ..., PN)

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值