您好,欢迎来到小奈知识网。
搜索
您的当前位置:首页Matlab图像函数

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([m n],k) [mb,nb] = bestblk([m n],k)

举例

siz = bestblk([0 800],72) siz =

50

相关命令:

blkproc 3.blkproc 功能:

320MATLAB高级应用——图形及影像处理

实现图像的显式块操作。 语法:

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)

举例

322

MATLAB高级应用——图形及影像处理

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图像处理命令

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

323

举例

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');

324

imshow(BW1);

MATLAB高级应用——图形及影像处理

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 

326MATLAB高级应用——图形及影像处理

功能: 调整颜色映像表中的颜色。 语法:

[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()), 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

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 =

MATLAB高级应用——图形及影像处理

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()), colorbar

J(abs(J) < 10) = 0; K = idct2(J)/255; imshow(K)

相关命令:

fft2, idct2, ifft2 22.dctmtx 功能:

330MATLAB高级应用——图形及影像处理

计算离散余弦变换矩阵。 语法:

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)

332MATLAB高级应用——图形及影像处理

[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()), colorbar

相关命令:

dct2, fftshift, idct2, ifft2 29.fftn 

功能: 进行n维快速傅里叶变换。 语法:

B = fftn(A) B = fftn(A,siz)

相关命令:

fft2, ifftn 30.fftshift 

334

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 =

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

freqz2(h,[32 32]); axis ([–1 1 –1 1 0 1])

34.fsamp2 

336MATLAB高级应用——图形及影像处理

功能:

用频率采样法设计二维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((r<0.1)|(r>0.5)) = 0; colormap(jet()) 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图像处理命令

h = ftrans2(b,t) h = ftrans2(b)

337

举例

colormap(jet())

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((r<0.1)|(r>0.5)) = 0; colormap(jet()) 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()) mesh(f1,f2,Hd)

338MATLAB高级应用——图形及影像处理

相关命令:

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,) figure; imhist(J,)

相关命令:

brighten, imadjust, imhist 43.hsv2rgb 

功能:

转换HSV值为RGB颜色空间。 语法:

rgbmap = hsv2rgb(hsvmap) RGB = hsv2rgb(HSV)

相关命令:

340MATLAB高级应用——图形及影像处理

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

342MATLAB高级应用——图形及影像处理

相关命令:

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图像处理命令

[Y,newmap] = imapprox(X,map,tol) Y = imapprox(X,map,newmap) [...] = imapprox(...,dither_option)

343

相关命令:

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)

344

MATLAB高级应用——图形及影像处理

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

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图像处理命令

ConvexImage: [15x16 uint8 ] ConvexArea: 205 Image: [15x16 uint8 ] FilledImage: [15x16 uint8 ] FilledArea: 122 EulerNumber: 0 Extrema: [ 8x2 double] EquivDiameter: 10.51 Solidity: 0.4341 Extent: 0.3708 PixelList: [x2 double]

345

相关命令: bwlabel 57.imfinfo 

功能: 返回图形文件信息。 语法:

info = imfinfo(filename,fmt) info = imfinfo(filename)

举例

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' info = imfinfo('canoe.tif')

346MATLAB高级应用——图形及影像处理

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 

功能: 确定像素颜色值。 语法:

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)

MATLAB高级应用——图形及影像处理

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图像处理命令

[...] = improfile(...,method)

349

举例

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)

举例

info = imfinfo('skull.hdf');

[X,map] = imread('skull.hdf',info(4).Reference);

bg = [255 0 0];

A = imread('image.png','BackgroundColor',bg);

[X,map] = imread('flowers.tif',6);

350MATLAB高级应用——图形及影像处理

[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图像处理命令

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

351

相关命令:

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)

352MATLAB高级应用——图形及影像处理

相关命令:

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 

3MATLAB高级应用——图形及影像处理

功能: 判断是否为索引图像。 语法:

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 =

0 0 0 1 0 1 1 1 0 1 1 1 1 1

附录 MATLAB图像处理命令

355

1 1

相关命令:

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 

功能: 进行二维中值过滤。 语法:

356

MATLAB高级应用——图形及影像处理

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)

358

B = ordfilt2(...,padopt)

MATLAB高级应用——图形及影像处理

相关命令: 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)

360MATLAB高级应用——图形及影像处理

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

举例

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 =

1 5 c =

1 1

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

相关命令:

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图像处理命令

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

361

相关命令:

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)

相关命令:

362MATLAB高级应用——图形及影像处理

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);

3

MATLAB高级应用——图形及影像处理

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)

366

MATLAB高级应用——图形及影像处理

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)

368MATLAB高级应用——图形及影像处理

举例

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

370

zoom reset zoom zoom xon zoom yon zoom(factor) zoom(fig,option)

MATLAB高级应用——图形及影像处理

相关命令: imcrop

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo3.com 版权所有 蜀ICP备2023022190号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务