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)相关命令:makelut2.bestblk功能:确定进行块操作的块大小.语法:siz = bestblk([m n],k)[mb,nb] = bestblk([m n],k)举例siz = bestblk([640 800],72)siz =64 50相关命令:blkproc3.blkprocMATLAB高级应用——图形及影像处理 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,inline4.brighten功能: 增加或降低颜色映像表的亮度.语法:brighten(beta)newmap = brighten(beta)newmap = brighten(map,beta)brighten(fig,beta)相关命令:imadjust, rgbplot5.bwarea功能: 计算二进制图像对象的面积.语法:total = bwarea(BW)举例BW = imread('circles.tif');imshow(BW);附录 MATLAB图像处理命令 321bwarea(BW)ans =15799相关命令:bweuler, bwperim6.bweuler.功能: 计算二进制图像的欧拉数.语法:eul = bweuler(BW,n)举例BW = imread('circles.tif');imshow(BW);bweuler(BW)ans =-2相关命令:bwmorph, bwperim7.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高级应用——图形及影像处理 322BW1 =[1 0 0 0 0 0 0 01 1 1 1 1 0 0 01 0 0 0 1 0 1 01 0 0 0 1 1 1 01 1 1 1 0 1 1 11 0 0 1 1 0 1 01 0 0 0 1 0 1 01 0 0 0 1 1 1 0]BW2 = bwfill(BW1,3,3,8)BW2 =1 0 0 0 0 0 0 01 1 1 1 1 0 0 01 1 1 1 1 0 1 01 1 1 1 1 1 1 01 1 1 1 0 1 1 11 0 0 1 1 0 1 01 0 0 0 1 0 1 01 0 0 0 1 1 1 0I = imread('blood1.tif');BW3 = ~im2bw(I);BW4 = bwfill(BW3,'holes');imshow(BW3)figure, imshow(BW4)相关命令:bwselect, roifill8.bwlabel功能:标注二进制图像中已连接的部分.语法:附录 MATLAB图像处理命令 323L = bwlabel(BW,n)[L,num] = bwlabel(BW,n)举例BW = [1 1 1 0 0 0 0 01 1 1 0 1 1 0 01 1 1 0 1 1 0 01 1 1 0 0 0 1 01 1 1 0 0 0 1 01 1 1 0 0 0 1 01 1 1 0 0 1 1 01 1 1 0 0 0 0 0]L = bwlabel(BW,4)L =1 1 1 0 0 0 0 01 1 1 0 2 2 0 01 1 1 0 2 2 0 01 1 1 0 0 0 3 01 1 1 0 0 0 3 01 1 1 0 0 0 3 01 1 1 0 0 3 3 01 1 1 0 0 0 0 0[r,c] = find(L==2);rc = [r c]rc =2 53 52 63 6相关命令:bweuler, bwselect9.bwmorph功能:提取二进制图像的轮廓.语法:BW2 = bwmorph(BW1,operation)BW2 = bwmorph(BW1,operation,n)举例BW1 = imread('circles.tif');MATLAB高级应用——图形及影像处理 324imshow(BW1);BW2 = bwmorph(BW1,'remove');BW3 = bwmorph(BW1,'skel',Inf);imshow(BW2)figure, imshow(BW3)相关命令:bweuler, bwperim, dilate, erode10.bwperim功能:计算二进制图像中对象的周长.语法:BW2 = bwperim(BW1,n)举例BW1 = imread('circbw.tif');BW2 = bwperim(BW1,8);imshow(BW1)figure, imshow(BW2)附录 MATLAB图像处理命令 325相关命令:bwarea, bweuler, bwfill11.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, roifill12.cmpermuteMATLAB高级应用——图形及影像处理 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);相关命令:randperm13.cmunique功能:查找颜色映像表中特定的颜色及相应的图像.语法:[Y,newmap] = cmunique(X,map)[Y,newmap] = cmunique(RGB)[Y,newmap] = cmunique(I)相关命令:gray2ind, rgb2ind14.col2im功能:将矩阵的列重新组织到块中.语法:A = col2im(B,[m n],[mm nn],block_type)A = col2im(B,[m n],[mm nn])相关命令:blkproc, colfilt, im2col, nlfilter15.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, nlfilter16.colorbar功能:显示颜色条.语法:colorbar('vert')colorbar('horiz')colorbar(h)colorbarh = colorbar(...)举例I = imread('blood1.tif');h = fspecial('log');I2 = filter2(h,I);imshow(I2,[]), colormap(jet(64)), colorbar17.conv2功能:进行二维卷积操作.语法:C = conv2(A,B)C = conv2(hcol,hrow,A)C = conv2(...,shape)举例A = magic(5)A =17 24 1 8 1523 5 7 14 164 6 13 20 22MATLAB高级应用——图形及影像处理 32810 12 19 21 311 18 25 2 9B = [1 2 1;0 2 0;3 1 3]B =1 2 10 2 03 1 3C = conv2(A,B)C =17 58 66 34 32 38 1523 85 88 35 67 76 1655 149 117 163 159 135 6779 78 160 161 187 129 5123 82 153 199 205 108 7530 68 135 168 91 84 933 65 126 85 104 15 27相关命令:filter218.convmtx2功能:计算二维卷积矩阵.语法:T = convmtx2(H,m,n)T = convmtx2(H,[m n])相关命令:conv219.convn功能: 计算n维卷积.语法:C = convn(A,B)C = convn(A,B,shape)相关命令:conv220.corr2功能:计算两个矩阵的二维相关系数.附录 MATLAB图像处理命令 329语法:r = corr2(A,B)相关命令:std221.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)), colorbarJ(abs(J) < 10) = 0;K = idct2(J)/255;imshow(K)相关命令:fft2, idct2, ifft222.dctmtx功能:MATLAB高级应用——图形及影像处理 330计算离散余弦变换矩阵.语法:D = dctmtx(n)相关命令:dct223.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, erode24.dither功能:通过抖动增加外观颜色分辨率,转换图像.语法:X = dither(RGB,map)BW = dither(I)相关命令:rgb2ind25.double附录 MATLAB图像处理命令 331功能:转换数据为双精度型.语法:B = double(A)举例A = imread('saturn.tif');B = sqrt(double(A));相关命令:im2double, im2uint, uint826.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图像处理命令 33328.fft2功能:进行二维快速傅里叶变换.语法:B = fft2(A)B = fft2(A,m,n)举例load imdemos saturn2imshow(saturn2)B = fftshift(fft2(saturn2));imshow(log(abs(B)),[]), colormap(jet(64)), colorbar相关命令:dct2, fftshift, idct2, ifft229.fftn功能: 进行n维快速傅里叶变换.语法:B = fftn(A)B = fftn(A,siz)相关命令:fft2, ifftn30.fftshiftMATLAB高级应用——图形及影像处理 334功能:把快速傅里叶变换的DC组件移到光谱中心.语法:B = fftshift(A)举例B = fftn(A);C = fftshift(B);相关命令:fft2, fftn, ifftshift31.filter2功能:进行二维线性过滤操作.语法:B = filter2(h,A)B = filter2(h,A,shape)举例A = magic(6)A =35 1 6 26 19 243 32 7 21 23 2531 9 2 22 27 208 28 33 17 10 1530 5 34 12 14 164 36 29 13 18 11h = fspecial('sobel')h =1 2 10 0 0-1 -2 -1B = filter2(h,A,'valid')B =-8 4 4 -8-23 -44 -5 40-23 -50 1 40-8 4 4 -8相关命令:conv2, roifilt232.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, fwind233.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.fsamp2MATLAB高级应用——图形及影像处理 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, fwind235.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, fwind236.ftrans2功能:通过频率转换设计二维FIR过滤器.语法:附录 MATLAB图像处理命令 337h = 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, fwind237.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, fwind238.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, fwind139.getimage功能:从坐标轴取得图像数据.语法:A = getimage(h)[x,y,A] = getimage(h)[...,A,flag] = getimage(h)[...] = getimage举例imshow rice.tifI = getimage;40.gray2ind功能:转换灰度图像为索引图像.语法:[X,map] = gray2ind(I,n)相关命令:ind2gray41.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相关命令:gray2ind42.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, imhist43.hsv2rgb功能: 转换HSV值为RGB颜色空间.语法:rgbmap = hsv2rgb(hsvmap)RGB = hsv2rgb(HSV)相关命令:MATLAB高级应用——图形及影像处理 340rgb2hsv, rgbplot44.idct2功能:计算二维离散反余弦变换.语法:B = idct2(A)B = idct2(A,m,n)B = idct2(A,[m n])相关命令:dct2, dctmtx, fft2, ifft245.ifft2功能:计算二维快速傅里叶反变换.语法:B = ifft2(A)B = ifft2(A,m,n)相关命令:fft2, fftshift, idct246.ifftn功能: 计算n维快速傅里叶反变换.语法:B = ifftn(A)B = ifftn(A,siz)相关命令:fft2, fftn, ifft247.sim2bw功能:转换图像为二进制图像.语法:BW = im2bw(I,level)BW = im2bw(X,map,level)BW = im2bw(RGB,level)举例load treesBW = im2bw(X,map,0.4);imshow(X,map)附录 MATLAB图像处理命令 341figure, imshow(BW)相关命令:ind2gray, rgb2gray48.im2col功能:重调图像块为列.语法:B = im2col(A,[m n],block_type)B = im2col(A,[m n])B = im2col(A,'indexed',...)相关命令:blkproc, col2im, colfilt, nlfilter49.im2double功能:转换图像矩阵为双精度型.语法:I2 = im2double(I1)RGB2 = im2double(RGB1)BW2 = im2double(BW1)X2 = im2double(X1,'indexed')相关命令:double, im2uint8, uint850.im2uint8功能:转换图像阵列为8位无符号整型.语法:I2 = im2uint8(I1)RGB2 = im2uint8(RGB1)BW2 = im2uint8(BW1)X2 = im2uint8(X1,'indexed')MATLAB高级应用——图形及影像处理 342相关命令:im2uint16, double, im2double, uint8, imapprox, uint1651.im2uint16功能:转换图像阵列为16位无符号整型.语法:I2 = im2uint16(I1)RGB2 = im2uint16(RGB1)X2 = im2uint16(X1,'indexed')相关命令:im2uint8, double, im2double, uint8, uint16, imapprox52.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, histeq53.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, rgb2ind54.imcontour功能:创建图像数据的轮廓图.语法:imcontour(I,n)imcontour(I,v)imcontour(x,y,...)imcontour(...,LineSpec)[C,h] = imcontour(...)举例I = imread('ic.tif');imcontour(I,3)相关命令:clabel, contour, LineSpec55.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)相关命令:zoom56.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: 89Centroid: [95.6742 192.9775]BoundingBox: [87.5000 184.5000 16 15]MajorAxisLength: 19.9127MinorAxisLength: 14.2953Eccentricity: 0.6961Orientation: 9.0845ConvexHull: [28x2 double]附录 MATLAB图像处理命令 345ConvexImage: [15x16 uint8 ]ConvexArea: 205Image: [15x16 uint8 ]FilledImage: [15x16 uint8 ]FilledArea: 122EulerNumber: 0Extrema: [ 8x2 double]EquivDiameter: 10.6451Solidity: 0.4341Extent: 0.3708PixelList: [89x2 double]相关命令:bwlabel57.imfinfo功能:返回图形文件信息.语法:info = imfinfo(filename,fmt)info = imfinfo(filename)举例info = imfinfo('canoe.tif')info =Filename:'canoe.tif'FileModDate: '25-Oct-1996 22:10:39'FileSize: 69708Format: 'tif'FormatVersion: []Width: 346Height: 207BitDepth: 8ColorType: 'indexed'FormatSignature: [73 73 42 0]ByteOrder: 'little-endian'NewSubfileType: 0BitsPerSample: 8Compression: 'PackBits'PhotometricInterpretation: 'RGB Palette'MATLAB高级应用——图形及影像处理 346StripOffsets: [ 9x1 double]SamplesPerPixel: 1RowsPerStrip: 23StripByteCounts: [ 9x1 double]XResolution: 72YResolution: 72ResolutionUnit: 'Inch'Colormap: [256x3 double]PlanarConfiguration: 'Chunky'TileWidth: []TileLength: []TileOffsets: []TileByteCounts: []Orientation: 1FillOrder: 1GrayResponseUnit: 0.0100MaxSamplue: 255MinSamplue: 0Thresholding: 1相关命令:imread, imwrite58.imhist功能:显示图像数据的柱状图.语法:imhist(I,n)imhist(X,map)[counts,x] = imhist(...)举例I = imread('pout.tif');imhist(I)附录 MATLAB图像处理命令 347相关命令:histeq59.immovie功能:创建多帧索引图的电影动画.语法:mov = immovie(X,map)举例load mrimov = immovie(D,map);相关命令:montage感谢:http://blog.sina.com.cn/s/blog_45b486b80100g46y.html