MATLAB图像处理命令

来源:互联网 发布:matlab三维数组 编辑:程序博客网 时间:2024/03/29 20:50

MATLAB图像处理命令

zzfrom:   http://public.whut.edu.cn/lxy/mathmodel/Resource/course/Matlab%206.0图形图像处理函数详细参考.pdf

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([m n],k) 
[mb,nb] = bestblk([m n],k) 
举例 
siz = bestblk([640 800],72) 
siz = 
64 50 
相关命令: 
blkproc 
3.blkproc 
功能: 
MATLAB高级应用——图形及影像处理 320
实现图像的显式块操作. 
语法: 
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',...) 
举例 
I = imread('alumgrns.tif'); 
I2 = blkproc(I,[8 8],'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 =[1 0 0 0 0 0 0 0 
1 1 1 1 1 0 0 0 
1 0 0 0 1 0 1 0 
1 0 0 0 1 1 1 0 
1 1 1 1 0 1 1 1 
1 0 0 1 1 0 1 0 
1 0 0 0 1 0 1 0 
1 0 0 0 1 1 1 0] 
BW2 = bwfill(BW1,3,3,8) 
BW2 = 
1 0 0 0 0 0 0 0 
1 1 1 1 1 0 0 0 
1 1 1 1 1 0 1 0 
1 1 1 1 1 1 1 0 
1 1 1 1 0 1 1 1 
1 0 0 1 1 0 1 0 
1 0 0 0 1 0 1 0 
1 0 0 0 1 1 1 0 
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 = [1 1 1 0 0 0 0 0 
1 1 1 0 1 1 0 0 
1 1 1 0 1 1 0 0 
1 1 1 0 0 0 1 0 
1 1 1 0 0 0 1 0 
1 1 1 0 0 0 1 0 
1 1 1 0 0 1 1 0 
1 1 1 0 0 0 0 0] 
L = bwlabel(BW,4) 
L = 
1 1 1 0 0 0 0 0 
1 1 1 0 2 2 0 0 
1 1 1 0 2 2 0 0 
1 1 1 0 0 0 3 0 
1 1 1 0 0 0 3 0 
1 1 1 0 0 0 3 0 
1 1 1 0 0 3 3 0 
1 1 1 0 0 0 0 0 
[r,c] = find(L==2); 
rc = [r c] 
rc = 
2 5 
3 5 
2 6 
3 6 
相关命令: 
bweuler, bwselect 
9.bwmorph 
功能: 
提取二进制图像的轮廓. 
语法: 
BW2 = bwmorph(BW1,operation) 
BW2 = bwmorph(BW1,operation,n) 
举例 
BW1 = imread('circles.tif'); 
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) 
举例 
BW1 = imread('circbw.tif'); 
BW2 = bwperim(BW1,8); 
imshow(BW1) 
figure, imshow(BW2) 
附录 MATLAB图像处理命令 325 
相关命令: 
bwarea, bweuler, bwfill 
11.bwselect 
功能: 
在二进制图像中选择对象. 
语法: 
BW2 = bwselect(BW1,c,r,n) 
BW2 = bwselect(BW1,n) 
[BW2,idx] = bwselect(...) 
举例 
BW1 = imread('text.tif'); 
c = [16 90 144]; 
r = [85 197 247]; 
BW2 = bwselect(BW1,c,r,4); 
imshow(BW1) 
figure, imshow(BW2) 
相关命令: 
bwfill, bwlabel, impixel, roipoly, roifill 
12.cmpermute 
MATLAB高级应用——图形及影像处理 326
功能: 
调整颜色映像表中的颜色. 
语法: 
[Y,newmap] = cmpermute(X,map) 
[Y,newmap] = cmpermute(X,map,index) 
举例 
To order a colormap by luminance, 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,[m n],[mm nn],block_type) 
A = col2im(B,[m n],[mm nn]) 
相关命令: 
blkproc, colfilt, im2col, nlfilter 
15.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',...) 
附录 MATLAB图像处理命令 327 
相关命令: 
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 = 
17 24 1 8 15 
23 5 7 14 16 
4 6 13 20 22 
MATLAB高级应用——图形及影像处理 328
10 12 19 21 3 
11 18 25 2 9 
B = [1 2 1;0 2 0;3 1 3] 
B = 
1 2 1 
0 2 0 
3 1 3 
C = conv2(A,B) 
C = 
17 58 66 34 32 38 15 
23 85 88 35 67 76 16 
55 149 117 163 159 135 67 
79 78 160 161 187 129 51 
23 82 153 199 205 108 75 
30 68 135 168 91 84 9 
33 65 126 85 104 15 27 
相关命令: 
filter2 
18.convmtx2 
功能: 
计算二维卷积矩阵. 
语法: 
T = convmtx2(H,m,n) 
T = convmtx2(H,[m n]) 
相关命令: 
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,[m n]) 
举例 
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图像处理命令 331 
功能: 
转换数据为双精度型. 
语法: 
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高级应用——图形及影像处理 332
[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图像处理命令 333 
28.fft2 
功能: 
进行二维快速傅里叶变换. 
语法: 
B = fft2(A) 
B = fft2(A,m,n) 
举例 
load imdemos saturn2 
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) 
A = 
35 1 6 26 19 24 
3 32 7 21 23 25 
31 9 2 22 27 20 
8 28 33 17 10 15 
30 5 34 12 14 16 
4 36 29 13 18 11 
h = fspecial('sobel') 
h = 
1 2 1 
0 0 0 
-1 -2 -1 
B = filter2(h,A,'valid') 
B = 
-8 4 4 -8 
-23 -44 -5 40 
-23 -50 1 40 
-8 4 4 -8 
相关命令: 
conv2, roifilt2 
32.freqspace 
附录 MATLAB图像处理命令 335 
功能: 
确定二维频率响应的频率空间. 
语法: 
[f1,f2] = freqspace(n) 
[f1,f2] = freqspace([m n]) 
[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,[n2 n1]) 
[H,f1,f2] = freqz2(h,f1,f2) 
[H,f1,f2] = freqz2(h) 
[...] = freqz2(h,...,[dx dy]) 
[...] = 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,[32 32]); axis ([-1 1 -1 1 0 1]) 
34.fsamp2 
MATLAB高级应用——图形及影像处理 336
功能: 
用频率采样法设计二维FIR过滤器. 
语法: 
h = fsamp2(Hd) 
h = fsamp2(f1,f2,Hd,[m n]) 
举例 
[f1,f2] = freqspace(21,'meshgrid'); 
Hd = ones(21); 
r = sqrt(f1.^2 + f2.^2); 
Hd((r0.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,[0 0.05 0.15 0.55 0.65 1],[0 0 1 1 0 0]); 
[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((r0.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((r0.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] = getimage(h) 
[...,A,flag] = getimage(h) 
[...] = getimage 
举例 
imshow rice.tif 
I = getimage; 
40.gray2ind 
功能: 
转换灰度图像为索引图像. 
语法: 
[X,map] = gray2ind(I,n) 
相关命令: 
ind2gray 
41.grayslice 
功能: 
从灰度图像创建索引图像. 
语法: 
X = grayslice(I,n) 
X = grayslice(I,v) 
举例 
I = imread('ngc4024m.tif'); 
X = grayslice(I,16); 
imshow(I) 
figure, imshow(X,jet(16)) 
附录 MATLAB图像处理命令 339 
相关命令: 
gray2ind 
42.histeq 
功能: 
用柱状图均等化增强对比. 
语法: 
J = histeq(I,hgram) 
J = histeq(I,n) 
[J,T] = histeq(I,...) 
举例 
I = imread('tire.tif'); 
J = histeq(I); 
imshow(I) 
figure, imshow(J) 
imhist(I,64) 
figure; imhist(J,64) 
相关命令: 
brighten, imadjust, imhist 
43.hsv2rgb 
功能: 转换HSV值为RGB颜色空间. 
语法: 
rgbmap = hsv2rgb(hsvmap) 
RGB = hsv2rgb(HSV) 
相关命令: 
MATLAB高级应用——图形及影像处理 340
rgb2hsv, rgbplot 
44.idct2 
功能: 
计算二维离散反余弦变换. 
语法: 
B = idct2(A) 
B = idct2(A,m,n) 
B = idct2(A,[m n]) 
相关命令: 
dct2, dctmtx, fft2, ifft2 
45.ifft2 
功能: 
计算二维快速傅里叶反变换. 
语法: 
B = ifft2(A) 
B = ifft2(A,m,n) 
相关命令: 
fft2, fftshift, idct2 
46.ifftn 
功能: 计算n维快速傅里叶反变换. 
语法: 
B = ifftn(A) 
B = ifftn(A,siz) 
相关命令: 
fft2, fftn, ifft2 
47.sim2bw 
功能: 
转换图像为二进制图像. 
语法: 
BW = im2bw(I,level) 
BW = im2bw(X,map,level) 
BW = im2bw(RGB,level) 
举例 
load trees 
BW = im2bw(X,map,0.4); 
imshow(X,map) 
附录 MATLAB图像处理命令 341 
figure, imshow(BW) 
相关命令: 
ind2gray, rgb2gray 
48.im2col 
功能: 
重调图像块为列. 
语法: 
B = im2col(A,[m n],block_type) 
B = im2col(A,[m n]) 
B = im2col(A,'indexed',...) 
相关命令: 
blkproc, col2im, colfilt, nlfilter 
49.im2double 
功能: 
转换图像矩阵为双精度型. 
语法: 
I2 = im2double(I1) 
RGB2 = im2double(RGB1) 
BW2 = im2double(BW1) 
X2 = im2double(X1,'indexed') 
相关命令: 
double, im2uint8, uint8 
50.im2uint8 
功能: 
转换图像阵列为8位无符号整型. 
语法: 
I2 = im2uint8(I1) 
RGB2 = im2uint8(RGB1) 
BW2 = im2uint8(BW1) 
X2 = im2uint8(X1,'indexed') 
MATLAB高级应用——图形及影像处理 342
相关命令: 
im2uint16, double, im2double, uint8, imapprox, uint16 
51.im2uint16 
功能: 
转换图像阵列为16位无符号整型. 
语法: 
I2 = im2uint16(I1) 
RGB2 = im2uint16(RGB1) 
X2 = im2uint16(X1,'indexed') 
相关命令: 
im2uint8, double, im2double, uint8, uint16, imapprox 
52.imadjust 
功能: 
调整图像灰度值或颜色映像表. 
语法: 
J = imadjust(I,[low high],[bottom top],gamma) 
newmap = imadjust(map,[low high],[bottom top],gamma) 
RGB2 = imadjust(RGB1,...) 
举例 
I = imread('pout.tif'); 
J = imadjust(I,[0.3 0.7],[]); 
imshow(I) 
figure, imshow(J) 
相关命令: 
brighten, histeq 
53.imapprox 
功能: 
对索引图像进行近似处理. 
语法: 
[Y,newmap] = imapprox(X,map,n) 
附录 MATLAB图像处理命令 343 
[Y,newmap] = imapprox(X,map,tol) 
Y = imapprox(X,map,newmap) 
[...] = imapprox(...,dither_option) 
相关命令: 
cmunique, dither, rgb2ind 
54.imcontour 
功能: 
创建图像数据的轮廓图. 
语法: 
imcontour(I,n) 
imcontour(I,v) 
imcontour(x,y,...) 
imcontour(...,LineSpec) 
[C,h] = imcontour(...) 
举例 
I = imread('ic.tif'); 
imcontour(I,3) 
相关命令: 
clabel, contour, LineSpec 
55.imcrop 
功能: 
剪切图像. 
语法: 
I2 = imcrop(I) 
X2 = imcrop(X,map) 
RGB2 = imcrop(RGB) 
I2 = imcrop(I,rect) 
X2 = imcrop(X,map,rect) 
RGB2 = imcrop(RGB,rect) 
MATLAB高级应用——图形及影像处理 344
[...] = imcrop(x,y,...) 
[A,rect] = imcrop(...) 
[x,y,A,rect] = imcrop(...) 
举例 
I = imread('ic.tif'); 
I2 = imcrop(I,[60 40 100 90]); 
imshow(I) 
figure, imshow(I2) 
相关命令: 
zoom 
56.imfeature 
功能: 
计算图像区域的特征尺寸. 
语法: 
stats = imfeature(L,measurements) 
stats = imfeature(L,measurements,n) 
举例 
BW = imread('text.tif'); 
L = bwlabel(BW); 
stats = imfeature(L,'all'); 
stats(23) 
ans = 
Area: 89 
Centroid: [95.6742 192.9775] 
BoundingBox: [87.5000 184.5000 16 15] 
MajorAxisLength: 19.9127 
MinorAxisLength: 14.2953 
Eccentricity: 0.6961 
Orientation: 9.0845 
ConvexHull: [28x2 double] 
附录 MATLAB图像处理命令 345 
ConvexImage: [15x16 uint8 ] 
ConvexArea: 205 
Image: [15x16 uint8 ] 
FilledImage: [15x16 uint8 ] 
FilledArea: 122 
EulerNumber: 0 
Extrema: [ 8x2 double] 
EquivDiameter: 10.6451 
Solidity: 0.4341 
Extent: 0.3708 
PixelList: [89x2 double] 
相关命令: 
bwlabel 
57.imfinfo 
功能: 
返回图形文件信息. 
语法: 
info = imfinfo(filename,fmt) 
info = imfinfo(filename) 
举例 
info = imfinfo('canoe.tif') 
info = 
Filename:'canoe.tif' 
FileModDate: '25-Oct-1996 22:10:39' 
FileSize: 69708 
Format: 'tif' 
FormatVersion: [] 
Width: 346 
Height: 207 
BitDepth: 8 
ColorType: 'indexed' 
FormatSignature: [73 73 42 0] 
ByteOrder: 'little-endian' 
NewSubfileType: 0 
BitsPerSample: 8 
Compression: 'PackBits' 
PhotometricInterpretation: 'RGB Palette' 
MATLAB高级应用——图形及影像处理 346
StripOffsets: [ 9x1 double] 
SamplesPerPixel: 1 
RowsPerStrip: 23 
StripByteCounts: [ 9x1 double] 
XResolution: 72 
YResolution: 72 
ResolutionUnit: 'Inch' 
Colormap: [256x3 double] 
PlanarConfiguration: 'Chunky' 
TileWidth: [] 
TileLength: [] 
TileOffsets: [] 
TileByteCounts: [] 
Orientation: 1 
FillOrder: 1 
GrayResponseUnit: 0.0100 
MaxSampleValue: 255 
MinSampleValue: 0 
Thresholding: 1 
相关命令: 
imread, imwrite 
58.imhist 
功能: 
显示图像数据的柱状图. 
语法: 
imhist(I,n) 
imhist(X,map) 
[counts,x] = imhist(...) 
举例 
I = imread('pout.tif'); 
imhist(I) 
附录 MATLAB图像处理命令 347 
相关命令: 
histeq 
59.immovie 
功能: 
创建多帧索引图的电影动画. 
语法: 
mov = immovie(X,map) 
举例 
load mri 
mov = immovie(D,map); 
相关命令: 
montage 
60.imnoise 
功能: 
增加图像的渲染效果. 
语法: 
J = imnoise(I,type) 
J = imnoise(I,type,parameters) 
举例 
I = imread('eight.tif'); 
J = imnoise(I,'salt & pepper',0.02); 
imshow(I) 
figure, imshow(J) 
相关命令: 
rand 
61.impixel 
功能: 
确定像素颜色值. 
语法: 
MATLAB高级应用——图形及影像处理 348
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,...) 
举例 
RGB = imread('flowers.tif'); 
c = [12 146 410]; 
r = [104 156 129]; 
pixels = impixel(RGB,c,r) 
pixels = 
61 59 101 
253 240 0 
237 37 44 
相关命令: 
improfile, pixval 
62.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) 
附录 MATLAB图像处理命令 349 
[...] = improfile(...,method) 
举例 
I = imread('alumgrns.tif'); 
x = [35 338 346 103]; 
y = [253 250 17 148]; 
improfile(I,x,y), grid on 
相关命令: 
impixel, pixval 
63.imread 
功能: 
从图形文件中读取图像. 
语法: 
A = imread(filename,fmt) 
[X,map] = imread(filename,fmt) 
[...] = imread(filename) 
[...] = imread(...,idx) (TIFF only) 
[...] = imread(...,ref) (HDF only) 
[...] = imread(...,'BackgroundColor',BG) (PNG only) 
[A,map,alpha] = imread(...) (PNG only) 
举例 
[X,map] = imread('flowers.tif',6); 
info = imfinfo('skull.hdf'); 
[X,map] = imread('skull.hdf',info(4).Reference); 
bg = [255 0 0]; 
A = imread('image.png','BackgroundColor',bg); 
MATLAB高级应用——图形及影像处理 350
[A,map,alpha] = imread('image.png'); 
相关命令: 
imfinfo, imwrite,fread,double,uint8,uint16 
64.imresize 
功能: 
改变图像大小. 
语法: 
B = imresize(A,m,method) 
B = imresize(A,[mrows ncols],method) 
B = imresize(...,method,n) 
B = imresize(...,method,h) 
65.imrotate 
功能: 
旋转图像. 
语法: 
B = imrotate(A,angle,method) 
B = imrotate(A,angle,method,'crop') 
举例 
I = imread('ic.tif'); 
J = imrotate(I,-4,'bilinear','crop'); 
imshow(I) 
figure, imshow(J) 
相关命令: 
imcrop, imresize 
66.imshow 
功能: 
显示图像. 
语法: 
附录 MATLAB图像处理命令 351 
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(...) 
相关命令: 
getimage, imread, iptgetpref, iptsetpref, subimage, truesize, warp 
67.imwrite 
功能: 
把图像写入图形文件中. 
语法: 
imwrite(A,filename,fmt) 
imwrite(X,map,filename,fmt) 
imwrite(...,filename) 
imwrite(...,Param1,Val1,Param2,Val2...) 
举例 
imwrite(X,map,'flowers.hdf','Compression','none',... 
'WriteMode','append') 
相关命令: 
imfinfo, imread 
68.ind2gray 
功能: 
把检索图像转化为灰度图像. 
语法: 
I = ind2gray(X,map) 
举例 
load trees 
I = ind2gray(X,map); 
imshow(X,map) 
figure,imshow(I) 
MATLAB高级应用——图形及影像处理 352
相关命令: 
gray2ind, imshow, rgb2ntsc 
69.ind2rgb 
功能: 
转化索引图像为RGB真彩图像. 
语法: 
RGB = ind2rgb(X,map) 
相关命令: 
ind2gray, rgb2ind 
70.iptgetpref 
功能: 
获取图像处理工具箱参数设置. 
语法: 
value = iptgetpref(prefname) 
举例 
value = iptgetpref('ImshowAxesVisible') 
value = 
off 
相关命令: 
imshow, iptsetpref 
71.iptsetpref 
功能: 
设置图像处理工具箱参数. 
语法: 
iptsetpref(prefname,value) 
举例 
iptsetpref('ImshowBorder','tight') 
相关命令: 
imshow, iptgetpref, truesize 
72.iradon 
附录 MATLAB图像处理命令 353 
功能: 
进行反Radon变换. 
语法: 
I = iradon(P,theta) 
I = iradon(P,theta,interp,filter,d,n) 
[I,h] = iradon(...) 
举例 
P = phantom(128); 
R = radon(P,0:179); 
I = iradon(R,0:179,'nearest','Hann'); 
imshow(P) 
figure, imshow(I) 
相关命令: 
radon, phantom 
73.isbw 
功能: 
判断是否为二进制图像. 
语法: 
flag = isbw(A) 
相关命令: 
isind, isgray, isrgb 
74.isgray 
功能: 
判断是否为灰度图像. 
语法: 
flag = isgray(A) 
相关命令: 
isbw, isind, isrgb 
75.isind 
MATLAB高级应用——图形及影像处理 354
功能: 
判断是否为索引图像. 
语法: 
flag = isind(A) 
相关命令: 
isbw, isgray, isrgb 
76.isrgb 
功能: 
判读是否为RGB真彩图像. 
语法: 
flag = isrgb(A) 
相关命令: 
isbw, isgray, isind 
77.makelut 
功能: 
创建一个用于applylut函数的lookup表. 
语法: 
lut = makelut(fun,n) 
lut = makelut(fun,n,P1,P2,...) 
举例 
f = inline('sum(x(:)) >= 2'); 
lut = makelut(f,2) 
lut = 














附录 MATLAB图像处理命令 355 


相关命令: 
applylut 
78.mat2gray 
功能: 
转化矩阵为灰度图像. 
语法: 
I = mat2gray(A,[amin amax]) 
I = mat2gray(A) 
举例 
I = imread('rice.tif'); 
J = filter2(fspecial('sobel'),I); 
K = mat2gray(J); 
imshow(I) 
figure, imshow(K) 
相关命令: 
gray2ind 
79.mean2 
功能: 
计算矩阵元素的平均值. 
语法: 
b = mean2(A) 
相关命令: 
std2, mean, std 
80.medfilt2 
功能: 
进行二维中值过滤. 
语法: 
MATLAB高级应用——图形及影像处理 356
B = medfilt2(A,[m n]) 
B = medfilt2(A) 
B = medfilt2(A,'indexed',...) 
举例 
I = imread('eight.tif'); 
J = imnoise(I,'salt & pepper',0.02); 
K = medfilt2(J); 
imshow(J) 
figure, imshow(K) 
相关命令: 
filter2, ordfilt2, wiener2 
81.montage 
功能: 
在矩形框中同时显示多幅图像. 
语法: 
montage(I) 
montage(BW) 
montage(X,map) 
montage(RGB) 
h = montage(...) 
举例 
load mri 
montage(D,map) 
附录 MATLAB图像处理命令 357 
相关命令: 
immovie 
82.nlfilter 
功能: 
进行边沿操作. 
语法: 
B = nlfilter(A,[m n],fun) 
B = nlfilter(A,[m n],fun,P1,P2,...) 
B = nlfilter(A,'indexed',...) 
举例 
B = nlfilter(A,[3 3],'median(x(:))'); 
相关命令: 
blkproc, colfilt 
83.ntsc2rgb 
功能: 转换NTSC的值为RGB颜色空间. 
语法: 
rgbmap = ntsc2rgb(yiqmap) 
RGB = ntsc2rgb(YIQ) 
相关命令: 
rgb2ntsc, rgb2ind, ind2rgb, ind2gray 
84.ordfilt2 
功能: 
进行二维统计顺序过滤. 
语法: 
B = ordfilt2(A,order,domain) 
B = ordfilt2(A,order,domain,S) 
MATLAB高级应用——图形及影像处理 358
B = ordfilt2(...,padopt) 
相关命令: 
medfilt2 
85.phantom 
功能: 
产生一个头部幻影图像. 
语法: 
P = phantom(def,n) 
P = phantom(E,n) 
[P,E] = phantom(...) 
举例 
P = phantom('Modified Shepp-Logan',200); 
imshow(P) 
相关命令: 
radon, iradon 
86.pixval 
功能: 
显示图像像素信息. 
语法: 
pixval on 
pixval off 
pixval 
pixval(fig,option) 
相关命令: 
impixel, improfile 
87.qtdecomp 
功能: 
进行四叉树分解. 
附录 MATLAB图像处理命令 359 
语法: 
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,...) 
举例 
I = [1 1 1 1 2 3 6 6 
1 1 2 1 4 5 6 8 
1 1 1 1 10 15 7 7 
1 1 1 1 20 25 7 7 
20 22 20 22 1 2 3 4 
20 22 22 20 5 6 7 8 
20 22 20 20 9 10 11 12 
22 22 20 20 13 14 15 16]; 
S = qtdecomp(I,5); 
full(S) 
ans = 
4 0 0 0 2 0 2 0 
0 0 0 0 0 0 0 0 
0 0 0 0 1 1 2 0 
0 0 0 0 1 1 0 0 
4 0 0 0 2 0 2 0 
0 0 0 0 0 0 0 0 
0 0 0 0 2 0 2 0 
0 0 0 0 0 0 0 0 
相关命令: 
qtgetblk, qtsetblk 
88.qtgetblk 
功能: 
获取四叉树分解中的块值. 
语法: 
[vals,r,c] = qtgetblk(I,S,dim) 
MATLAB高级应用——图形及影像处理 360
[vals,idx] = qtgetblk(I,S,dim) 
举例 
[vals,r,c] = qtgetblk(I,S,4) 
vals(:,:,1) = 
1 1 1 1 
1 1 2 1 
1 1 1 1 
1 1 1 1 
vals(:,:,2) = 
20 22 20 22 
20 22 22 20 
20 22 20 20 
22 22 20 20 
r = 


c = 


相关命令: 
qtdecomp, qtsetblk 
89.qtsetblk 
功能: 
设置四叉树分解中的块值. 
语法: 
J = qtsetblk(I,S,dim,vals) 
举例 
newvals = cat(3,zeros(4),ones(4)); 
J = qtsetblk(I,S,4,newvals) 
J = 
0 0 0 0 2 3 6 6 
0 0 0 0 4 5 6 8 
0 0 0 0 10 15 7 7 
附录 MATLAB图像处理命令 361 
0 0 0 0 20 25 7 7 
1 1 1 1 1 2 3 4 
1 1 1 1 5 6 7 8 
1 1 1 1 9 10 11 12 
1 1 1 1 13 14 15 16 
相关命令: 
qtdecomp, qtgetblk 
90.radon 
功能: 计算Radon变换. 
语法: 
R = radon(I,theta) 
R = radon(I,theta,n) 
[R,xp] = radon(...) 
举例 
iptsetpref('ImshowAxesVisible','on') 
I = zeros(100,100); 
I(25:75,25:75) = 1; 
theta = 0:180; 
[R,xp] = radon(I,theta); 
imshow(theta,xp,R,[]), colormap(hot), colorbar 
相关命令: 
iradon, phantom 
91.rgb2gray 
功能: 转换RGB图像或颜色映像表为灰度图像. 
语法: 
I = rgb2gray(RGB) 
newmap = rgb2gray(map) 
相关命令: 
MATLAB高级应用——图形及影像处理 362
ind2gray, ntsc2rgb, rgb2ind, rgb2ntsc 
92.rgb2hsv 
功能: 转化RGB值为HSV颜色空间. 
语法: 
hsvmap = rgb2hsv(rgbmap) 
HSV = rgb2hsv(RGB) 
相关命令: 
hsv2rgb, rgbplot 
93.rgb2ind 
功能: 转化RGB图像为索引图像. 
语法: 
[X,map] = rgb2ind(RGB,tol) 
[X,map] = rgb2ind(RGB,n) 
X = rgb2ind(RGB,map) 
[...] = rgb2ind(...,dither_option) 
举例 
RGB = imread('flowers.tif'); 
[X,map] = rgb2ind(RGB,128); 
imshow(X,map) 
相关命令: 
cmunique, dither, imapprox, ind2rgb, rgb2gray 
94.rgb2ntsc 
功能: 转化RGB的值为NTSC颜色空间. 
语法: 
yiqmap = rgb2ntsc(rgbmap) 
YIQ = rgb2ntsc(RGB) 
附录 MATLAB图像处理命令 363 
相关命令: 
ntsc2rgb, rgb2ind, ind2rgb, ind2gray 
95.rgb2ycbcr 
功能: 转化RGB的值为YcbCr颜色空间. 
语法: 
ycbcrmap = rgb2ycbcr(rgbmap) 
YCBCR = rgb2ycbcr(RGB) 
相关命令: 
ntsc2rgb, rgb2ntsc, ycbcr2rgb 
96.rgbplot 
功能: 
划分颜色映像表. 
语法: 
rgbplot(map) 
举例 
rgbplot(jet) 
相关命令: 
colormap 
97.roicolor 
功能: 
选择感兴趣的颜色区. 
语法: 
BW = roicolor(A,low,high) 
BW = roicolor(A,v) 
举例 
I = imread('rice.tif'); 
BW = roicolor(I,128,255); 
imshow(I); 
MATLAB高级应用——图形及影像处理 364
figure, imshow(BW) 
相关命令: 
roifilt2, roipoly 
98.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(...) 
举例 
I = imread('eight.tif'); 
c = [222 272 300 270 221 194]; 
r = [21 21 75 121 121 75]; 
J = roifill(I,c,r); 
imshow(I) 
figure, imshow(J) 
附录 MATLAB图像处理命令 365 
相关命令: 
roifilt2, roipoly 
99.roifilt2 
功能: 
过滤敏感区域. 
语法: 
J = roifilt2(h,I,BW) 
J = roifilt2(I,BW,fun) 
J = roifilt2(I,BW,fun,P1,P2,...) 
举例 
h = fspecial('unsharp'); 
J = roifilt2(h,I,BW); 
imshow(J) 
相关命令: 
filter2, roipoly 
100.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(...) 
举例 
I = imread('eight.tif'); 
c = [222 272 300 270 221 194]; 
r = [21 21 75 121 121 75]; 
BW = roipoly(I,c,r); 
imshow(I) 
MATLAB高级应用——图形及影像处理 366
figure, imshow(BW) 
相关命令: 
roifilt2, roicolor, roifill 
101.std2 
功能: 
计算矩阵元素的标准偏移. 
语法: 
b = std2(A) 
相关命令: 
corr2, mean2 
102.subimage 
功能: 
在一幅图中显示多个图像. 
语法: 
subimage(X,map) 
subimage(I) 
subimage(BW) 
subimage(RGB) 
subimage(x,y,...) 
h = subimage(...) 
举例 
load trees 
[X2,map2] = imread('forest.tif'); 
subplot(1,2,1), subimage(X,map) 
subplot(1,2,2), subimage(X2,map2) 
相关命令: 
附录 MATLAB图像处理命令 367 
103.truesize 
功能: 
调整图像显示尺寸. 
语法: 
truesize(fig,[mrows mcols]) 
truesize(fig) 
相关命令: 
imshow, iptsetpref, iptgetpref 
104.uint8 
功能: 
转换数据为8位无符号整型. 
语法: 
B = uint8(A) 
举例 
a = [1 3 5]; 
b = uint8(a); 
whos 
Name Size Bytes Class 
a 1x3 24 doublearray 
b 1x3 3 uint8 array 
相关命令: 
double, im2double, im2uint8 
105.uint16 
功能: 
转换数据为16位无符号整型. 
语法: 
I = uint16(X) 
MATLAB高级应用——图形及影像处理 368
举例 
a = [1 3 5]; 
b = uint16(a); 
whos 
Name Size Bytes Class 
a 1x3 24 double array 
b 1x3 6 uint16 array 
相关命令: 
double, datatypes, uint8, uint32, int8, int16, int32. 
106.warp 
功能: 
将图像显示到纹理映射表面. 
语法: 
warp(X,map) 
warp(I,n) 
warp(BW) 
warp(RGB) 
warp(z,...) 
warp(x,y,z,...) 
h = warp(...) 
举例 
[x,y,z] = cylinder; 
I = imread('testpat1.tif'); 
warp(x,y,z,I); 
相关命令: 
imshow 
附录 MATLAB图像处理命令 369 
107.wiener2 
功能: 
进行二维适应性去噪过滤处理. 
语法: 
J = wiener2(I,[m n],noise) 
[J,noise] = wiener2(I,[m n]) 
举例 
I = imread('saturn.tif'); 
J = imnoise(I,'gaussian',0,0.005); 
K = wiener2(J,[5 5]); 
imshow(J) 
figure, imshow(K) 
相关命令: 
filter2, medfilt2 
108.ycbcr2rgb 
功能: 转化YcbCr值为RGB颜色空间. 
语法: 
rgbmap = ycbcr2rgb(ycbcrmap) 
RGB = ycbcr2rgb(YCBCR) 
相关命令: 
ntsc2rgb, rgb2ntsc, rgb2ycbcr 
109.zoom 
功能: 
缩放图像. 
语法: 
zoom on 
zoom off 
zoom out 
MATLAB高级应用——图形及影像处理 370
zoom reset 
zoom 
zoom xon 
zoom yon 
zoom(factor) 
zoom(fig,option) 
相关命令: 
imcrop  

原创粉丝点击