MATLAB图像处理命令集汇Word文档格式.docx
《MATLAB图像处理命令集汇Word文档格式.docx》由会员分享,可在线阅读,更多相关《MATLAB图像处理命令集汇Word文档格式.docx(52页珍藏版)》请在冰豆网上搜索。
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)
bweuler(BW)
-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,'
MATLAB高级应用——图形及影像处理322
BW1=[10000000
11111000
10001010
10001110
11110111
10011010
10001110]
BW2=bwfill(BW1,3,3,8)
BW2=
10000000
11111010
11111110
blood1.tif'
BW3=~im2bw(I);
BW4=bwfill(BW3,'
imshow(BW3)
figure,imshow(BW4)
bwselect,roifill
8.bwlabel
标注二进制图像中已连接的部分.
附录MATLAB图像处理命令323
L=bwlabel(BW,n)
[L,num]=bwlabel(BW,n)
BW=[11100000
11101100
11100010
11100110
11100000]
L=bwlabel(BW,4)
L=
11100000
11102200
11100030
11100330
[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)
MATLAB高级应用——图形及影像处理324
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)
circbw.tif'
BW2=bwperim(BW1,8);
附录MATLAB图像处理命令325
bwarea,bweuler,bwfill
11.bwselect
在二进制图像中选择对象.
BW2=bwselect(BW1,c,r,n)
BW2=bwselect(BW1,n)
[BW2,idx]=bwselect(...)
c=[1690144];
r=[85197247];
BW2=bwselect(BW1,c,r,4);
bwfill,bwlabel,impixel,roipoly,roifill
12.cmpermute
MATLAB高级应用——图形及影像处理326
调整颜色映像表中的颜色.
[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,'
附录MATLAB图像处理命令327
blkproc,col2im,im2col,nlfilter
16.colorbar
显示颜色条.
colorbar('
vert'
)
horiz'
colorbar(h)
colorbar
h=colorbar(...)
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=
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)
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)
SE=ones(6,2);
BW2=dilate(BW1,SE);
bwmorph,erode
24.dither
通过抖动增加外观颜色分辨率,转换图像.
X=dither(RGB,map)
BW=dither(I)
rgb2ind
25.double
附录MATLAB图像处理命令331
转换数据为双精度型.
B=double(A)
A=imread('
saturn.tif'
B=sqrt(double(A));
im2double,im2uint,uint8
26.edge
识别强度图像中的边界.
BW=edge(I,'
sobel'
thresh)
thresh,direction)
[BW,thresh]=edge(I,'
prewitt'
roberts'
thresh,sigma)
[BW,threshold]=edge(I,'
zerocross'
thresh,h)
canny'
MATLAB高级应用——图形及影像处理332
rice.tif'
BW1=edge(I,'
BW2=edge(I,'
27.erode
弱化二进制图像的边界.
BW2=erode(BW1,SE)
BW2=erode(BW1,SE,alg)
BW2=erode(BW1,SE,...,n)
SE=ones(3,1);
BW2=erode(BW1,SE);
bwmorph,dilate
附录MATLAB图像处理命令333
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高级应用——图形及影像处理334
把快速傅里叶变换的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)
3516261924
3327212325
3192222720
82833171015
30534121416
43629131811
h=
000
-1-2-1
B=filter2(h,A,'
valid'
-844-8
-23-44-540
-23-50140
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,'
Hd=ones(21);
r=sqrt(f1.^2+f2.^2);
Hd((r0.5))=0;
mesh(f1,f2,Hd)
conv2,filter2,freqspace,ftrans2,fwind1,fwind2
35.fspecial
创建预定义过滤器.
h=fspecial(type)
h=fspecial(type,parameters)
unsharp'
0.5);
I2=filter2(h,I)/255;
figure,imshow(I2)
conv2,edge,filter2,fsamp2,fwind1,fwind2
36.ftrans2
通过频率转换设计二维FIR过滤器.
附录MATLAB图像处理命令337
h=ftrans2(b,t)
h=ftrans2(b)
b=remez(10,[00.050.150.550.651],[001100]);
[H,w]=freqz(b,1,128,'
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,...)
Hd((r0.5)