MATLAB 图像处理命令.docx
《MATLAB 图像处理命令.docx》由会员分享,可在线阅读,更多相关《MATLAB 图像处理命令.docx(64页珍藏版)》请在冰豆网上搜索。
MATLAB图像处理命令
MATLAB图像处理命令
*************************************
1.applylut
功能:
在二进制图像中利用lookup表进行边沿操作。
语法:
A=applylut(BW,lut)
举例
lut=makelut('sum(x(:
))==4',2);
BW1=imread('text.tif');
BW2=applylut(BW1,lut);
imshow(BW1)
figure,imshow(BW2)
相关命令:
makelut
2.bestblk
功能:
确定进行块操作的块大小。
语法:
siz=bestblk([mn],k)
[mb,nb]=bestblk([mn],k)
举例
siz=bestblk([640800],72)
siz=
6450
相关命令:
blkproc
3.blkproc
功能:
MATLAB高级应用——图形及影像处理
320
实现图像的显式块操作。
语法:
B=blkproc(A,[mn],fun)
B=blkproc(A,[mn],fun,P1,P2,...)
B=blkproc(A,[mn],[mbordernborder],fun,...)
B=blkproc(A,'indexed',...)
举例
I=imread('alumgrns.tif');
I2=blkproc(I,[88],'std2(x)*ones(size(x))');
imshow(I)
figure,imshow(I2,[]);
相关命令:
colfilt,nlfilter,inline
4.brighten
功能:
增加或降低颜色映像表的亮度。
语法:
brighten(beta)
newmap=brighten(beta)
newmap=brighten(map,beta)
brighten(fig,beta)
相关命令:
imadjust,rgbplot
5.bwarea
功能:
计算二进制图像对象的面积。
语法:
total=bwarea(BW)
举例
BW=imread('circles.tif');
imshow(BW);
附录MATLAB图像处理命令
321
bwarea(BW)
ans=
15799
相关命令:
bweuler,bwperim
6.bweuler.
功能:
计算二进制图像的欧拉数。
语法:
eul=bweuler(BW,n)
举例
BW=imread('circles.tif');
imshow(BW);
bweuler(BW)
ans=
–2
相关命令:
bwmorph,bwperim
7.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=bwfill(BW1,'holes',n)
[BW2,idx]=bwfill(BW1,'holes',n)
举例
MATLAB高级应用——图形及影像处理
322
BW1=[10000000
11111000
10001010
10001110
11110111
10011010
10001010
10001110]
BW2=bwfill(BW1,3,3,8)
BW2=
10000000
11111000
11111010
11111110
11110111
10011010
10001010
10001110
I=imread('blood1.tif');
BW3=~im2bw(I);
BW4=bwfill(BW3,'holes');
imshow(BW3)
figure,imshow(BW4)
相关命令:
bwselect,roifill
8.bwlabel
功能:
标注二进制图像中已连接的部分。
语法:
附录MATLAB图像处理命令
323
L=bwlabel(BW,n)
[L,num]=bwlabel(BW,n)
举例
BW=[11100000
11101100
11101100
11100010
11100010
11100010
11100110
11100000]
L=bwlabel(BW,4)
L=
11100000
11102200
11102200
11100030
11100030
11100030
11100330
11100000
[r,c]=find(L==2);
rc=[rc]
rc=
25
35
26
36
相关命令:
bweuler,bwselect
9.bwmorph
功能:
提取二进制图像的轮廓。
语法:
BW2=bwmorph(BW1,operation)
BW2=bwmorph(BW1,operation,n)
举例
BW1=imread('circles.tif');
MATLAB高级应用——图形及影像处理
imshow(BW1);
BW2=bwmorph(BW1,'remove');
BW3=bwmorph(BW1,'skel',Inf);
imshow(BW2)
figure,imshow(BW3)
相关命令:
bweuler,bwperim,dilate,erode
10.bwperim
功能:
计算二进制图像中对象的周长。
语法:
BW2=bwperim(BW1,n)
举例
BW1=imread('circbw.tif');
BW2=bwperim(BW1,8);
imshow(BW1)
figure,imshow(BW2)
附录MATLAB图像处理命令
相关命令:
bwarea,bweuler,bwfill
11.bwselect
功能:
在二进制图像中选择对象。
语法:
BW2=bwselect(BW1,c,r,n)
BW2=bwselect(BW1,n)
[BW2,idx]=bwselect(...)
举例
BW1=imread('text.tif');
c=[1690144];
r=[85197247];
BW2=bwselect(BW1,c,r,4);
imshow(BW1)
figure,imshow(BW2)
相关命令:
bwfill,bwlabel,impixel,roipoly,roifill
12.cmpermute
MATLAB高级应用——图形及影像处理
功能:
调整颜色映像表中的颜色。
语法:
[Y,newmap]=cmpermute(X,map)
[Y,newmap]=cmpermute(X,map,index)
举例
Toorderacolormapbyluminance,use:
ntsc=rgb2ntsc(map);
[dum,index]=sort(ntsc(:
1));
[Y,newmap]=cmpermute(X,map,index);
相关命令:
randperm
13.cmunique
功能:
查找颜色映像表中特定的颜色及相应的图像。
语法:
[Y,newmap]=cmunique(X,map)
[Y,newmap]=cmunique(RGB)
[Y,newmap]=cmunique(I)
相关命令:
gray2ind,rgb2ind
14.col2im
功能:
将矩阵的列重新组织到块中。
语法:
A=col2im(B,[mn],[mmnn],block_type)
A=col2im(B,[mn],[mmnn])
相关命令:
blkproc,colfilt,im2col,nlfilter
15.colfilt
功能:
利用列相关函数进行边沿操作。
语法:
B=colfilt(A,[mn],block_type,fun)
B=colfilt(A,[mn],block_type,fun,P1,P2,...)
B=colfilt(A,[mn],[mblocknblock],block_type,fun,...)
B=colfilt(A,'indexed',...)
附录MATLAB图像处理命令
相关命令:
blkproc,col2im,im2col,nlfilter
16.colorbar
功能:
显示颜色条。
语法:
colorbar('vert')
colorbar('horiz')
colorbar(h)
colorbar
h=colorbar(...)
举例
I=imread('blood1.tif');
h=fspecial('log');
I2=filter2(h,I);
imshow(I2,[]),colormap(jet(64)),colorbar
17.conv2
功能:
进行二维卷积操作。
语法:
C=conv2(A,B)
C=conv2(hcol,hrow,A)
C=conv2(...,shape)
举例
A=magic(5)
A=
17241815
23571416
46132022
MATLAB高级应用——图形及影像处理
328
101219213
11182529
B=[121;020;313]
B=
121
020
313
C=conv2(A,B)
C=
17586634323815
23858835677616
5514911716315913567
797816016118712951
238215319920510875
306813516891849
3365126851041527
相关命令:
filter2
18.convmtx2
功能:
计算二维卷积矩阵。
语法:
T=convmtx2(H,m,n)
T=convmtx2(H,[mn])
相关命令:
conv2
19.convn
功能:
计算n维卷积。
语法:
C=convn(A,B)
C=convn(A,B,shape)
相关命令:
conv2
20.corr2
功能:
计算两个矩阵的二维相关系数。
附录MATLAB图像处理命令
329
语法:
r=corr2(A,B)
相关命令:
std2
21.dct2
功能:
进行二维离散余弦变换。
语法:
B=dct2(A)
B=dct2(A,m,n)
B=dct2(A,[mn])
举例
RGB=imread('autumn.tif');
I=rgb2gray(RGB);
J=dct2(I);
imshow(log(abs(J)),[]),colormap(jet(64)),colorbar
J(abs(J)<10)=0;
K=idct2(J)/255;
imshow(K)
相关命令:
fft2,idct2,ifft2
22.dctmtx
功能:
MATLAB高级应用——图形及影像处理
330
计算离散余弦变换矩阵。
语法:
D=dctmtx(n)
相关命令:
dct2
23.dilate
功能:
放大二进制图像。
语法:
BW2=dilate(BW1,SE)
BW2=dilate(BW1,SE,alg)
BW2=dilate(BW1,SE,...,n)
举例
BW1=imread('text.tif');
SE=ones(6,2);
BW2=dilate(BW1,SE);
imshow(BW1)
figure,imshow(BW2)
相关命令:
bwmorph,erode
24.dither
功能:
通过抖动增加外观颜色分辨率,转换图像。
语法:
X=dither(RGB,map)
BW=dither(I)
相关命令:
rgb2ind
25.double
附录MATLAB图像处理命令
功能:
转换数据为双精度型。
语法:
B=double(A)
举例
A=imread('saturn.tif');
B=sqrt(double(A));
相关命令:
im2double,im2uint,uint8
26.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)
MATLAB高级应用——图形及影像处理
[BW,threshold]=edge(I,'canny',...)
举例
I=imread('rice.tif');
BW1=edge(I,'prewitt');
BW2=edge(I,'canny');
imshow(BW1);
figure,imshow(BW2)
27.erode
功能:
弱化二进制图像的边界。
语法:
BW2=erode(BW1,SE)
BW2=erode(BW1,SE,alg)
BW2=erode(BW1,SE,...,n)
举例
BW1=imread('text.tif');
SE=ones(3,1);
BW2=erode(BW1,SE);
imshow(BW1)
figure,imshow(BW2)
相关命令:
bwmorph,dilate
附录MATLAB图像处理命令
28.fft2
功能:
进行二维快速傅里叶变换。
语法:
B=fft2(A)
B=fft2(A,m,n)
举例
loadimdemossaturn2
imshow(saturn2)
B=fftshift(fft2(saturn2));
imshow(log(abs(B)),[]),colormap(jet(64)),colorbar
相关命令:
dct2,fftshift,idct2,ifft2
29.fftn
功能:
进行n维快速傅里叶变换。
语法:
B=fftn(A)
B=fftn(A,siz)
相关命令:
fft2,ifftn
30.fftshift
MATLAB高级应用——图形及影像处理
功能:
把快速傅里叶变换的DC组件移到光谱中心。
语法:
B=fftshift(A)
举例
B=fftn(A);
C=fftshift(B);
相关命令:
fft2,fftn,ifftshift
31.filter2
功能:
进行二维线性过滤操作。
语法:
B=filter2(h,A)
B=filter2(h,A,shape)
举例
A=magic(6)
A=
3516261924
3327212325
3192222720
82833171015
30534121416
43629131811
h=fspecial('sobel')
h=
121
000
–1–2–1
B=filter2(h,A,'valid')
B=
–844–8
–23–44–540
–23–50140
–844–8
相关命令:
conv2,roifilt2
32.freqspace
附录MATLAB图像处理命令
335
功能:
确定二维频率响应的频率空间。
语法:
[f1,f2]=freqspace(n)
[f1,f2]=freqspace([mn])
[x1,y1]=freqspace(...,'meshgrid')
f=freqspace(N)
f=freqspace(N,'whole')
相关命令:
fsamp2,fwind1,fwind2
33.freqz2
功能:
计算二维频率响应。
语法:
[H,f1,f2]=freqz2(h,n1,n2)
[H,f1,f2]=freqz2(h,[n2n1])
[H,f1,f2]=freqz2(h,f1,f2)
[H,f1,f2]=freqz2(h)
[...]=freqz2(h,...,[dxdy])
[...]=freqz2(h,...,dx)
freqz2(...)
举例
Hd=zeros(16,16);
Hd(5:
12,5:
12)=1;
Hd(7:
10,7:
10)=0;
h=fwind1(Hd,bartlett(16));
colormap(jet(64))
freqz2(h,[3232]);axis([–11–1101])
34.fsamp2
MATLAB高级应用——图形及影像处理
336
功能:
用频率采样法设计二维FIR过滤器。
语法:
h=fsamp2(Hd)
h=fsamp2(f1,f2,Hd,[mn])
举例
[f1,f2]=freqspace(21,'meshgrid');
Hd=ones(21);
r=sqrt(f1.^2+f2.^2);
Hd((r<0.1)|(r>0.5))=0;
colormap(jet(64))
mesh(f1,f2,Hd)
相关命令:
conv2,filter2,freqspace,ftrans2,fwind1,fwind2
35.fspecial
功能:
创建预定义过滤器。
语法:
h=fspecial(type)
h=fspecial(type,parameters)
举例
I=imread('saturn.tif');
h=fspecial('unsharp',0.5);
I2=filter2(h,I)/255;
imshow(I)
figure,imshow(I2)
相关命令:
conv2,edge,filter2,fsamp2,fwind1,fwind2
36.ftrans2
功能:
通过频率转换设计二维FIR过滤器。
语法:
附录MATLAB图像处理命令
337
h=ftrans2(b,t)
h=ftrans2(b)
举例
colormap(jet(64))
b=remez(10,[00.050.150.550.651],[001100]);
[H,w]=freqz(b,1,128,'whole');
plot(w/pi–1,fftshift(abs(H)))
相关命令:
conv2,filter2,fsamp2,fwind1,fwind2
37.fwind1
功能:
用一维窗口方法设计二维FIR过滤器。
语法:
h=fwind1(Hd,win)
h=fwind1(Hd,win1,win2)
h=fwind1(f1,f2,Hd,...)
举例
[f1,f2]=freqspace(21,'meshgrid');
Hd=ones(21);
r=sqrt(f1.^2+f2.^2);
Hd((r<0.1)|(r>0.5))=0;
colormap(jet(64))
mesh(f1,f2,Hd)
相关命令:
conv2,filter2,fsamp2,freqspace,ftrans2,fwind2
38.fwind2
功能:
用二维窗口方法设计二维FIR过滤器。
语法:
h=fwind2(Hd,win)
h=fwind2(f1,f2,Hd,win)
举例
[f1,f2]=freqspace(21,'meshgrid');
Hd=ones(21);
r=sqrt(f1.^2+f2.^2);
Hd((r<0.1)|(r>0.5))=0;
colormap(jet(64))
mesh(f1,f2,Hd)
MATLAB高级应用——图形及影像处理
338
相关命令:
conv2,filter2,fsamp2,freqspace,ftrans2,fwind1
39.getimage
功能:
从坐标轴取得图像数据。
语法:
A=getimage(h)
[x,y,A]=getima