1、matlab图像处理函数总汇图像处理函数详解bwareaopen功能:用于从对象中移除小对象。用法:BW2 = bwareaopen(BW,P)BW2 = bwareaopen(BW,P,CONN)BW2 = bwareaopen(BW,P,CONN)从二值图像中移除所有小于P的连通对象。CONN对应邻域方法,默认为8。例子:originalBW = imread(text.png);imview(originalBW) bwAreaOpenBW = bwareaopen(originalBW,50);imview(bwAreaOpenBW)图像处理函数详解bwlabel功能:对连通对象进行标
2、注,bwlabel主要对二维二值图像中各个分离部分进行标注(多维用bwlabeln,用法类似)。用法:L = bwlabel(BW,n)L,num = bwlabel(BW,n)L = bwlabel(BW,n)表示返回和BW相同大小的数组L。L中包含了连通对象的标注。参数n为4或8,分别对应4邻域和8邻域,默认值为8。L,num = bwlabel(BW,n)返回连通数num。图像处理函数详解bwperim功能:查找二值图像的边缘。用法:BW2 = bwperim(BW1)BW2 = bwperim(BW1,conn)BW2 = bwperim(BW1,conn)表示从输入图像BW1中返回只
3、包括对象边缘像素点的图像。conn的定义值如下:维数参数值说明对二维44邻域88邻域对三维66邻域1818邻域2626邻域例子:BW1 = imread(circbw.tif);BW2 = bwperim(BW1,8); imshow(BW1)figure, imshow(BW2)图像处理函数详解colfilt功能:以列方法进行邻域处理,也可执行常规非线性滤波(自己理解的)。用法:B = colfilt(A,m n,block_type,fun)该函数生成了一幅图像,在中,每一列对应于其中心位于图像内某个位置的邻域所包围的像素。然后将函数应用于该矩阵中。m n表示大小为m行n列的邻域。bloc
4、k_type表示了一个字符串,包括distinct,sliding两种,其中sliding是在输入图像中逐个像素地滑动该m乘n的区域。fun表示引用了一个函数进行处理,函数返回值的大小必须和原图像大小相同。举例:I = imread(tire.tif); imshow(I) I2 = uint8(colfilt(I,5 5,sliding,mean); figure, imshow(I2)图像处理函数详解dither功能:可以把真彩色图像装换成索引图像或者把灰度图像转换为二值图像。用法:X = dither(RGB,map)BW = dither(I) X = dither(RGB,map,Q
5、m,Qe)X = dither(RGB,map)表示把真彩色图像RGB按指定的色图map抖动成索引图像X,但map不能超过65536种颜色。BW = dither(I)表示把灰度图像I抖动成二值图像BWX = dither(RGB,map,Qm,Qe) Qm表示沿每个颜色轴反转颜色图的量化的位数,Qe表示颜色空间计算误差的量化位数。如果QeQm,则不进行抖动操作。默认值Qe=5,Qm=8例子:I = imread(cameraman.tif);BW = dither(I);imview(BW)图像处理函数详解conv2功能:是二维卷积运算函数(与convmtx2相似)。如果a和b是两个离散变量
6、n1和n2的函数,则关于a和b的二维卷积运算数学公式如下:用法:C = conv2(A,B)C = conv2(hcol,hrow,A)C = conv2(.,shape)C = conv2(A,B)计算数组A和B的卷积。如果一个数组描述了一个二维FIR滤波器,则另一个数组被二维滤波。当A的大小为ma,na,B的大小为mb,nb时,C的大小为ma+mb-1,mb+nb-1。shape见下表参数值含义full默认值,返回全部二维卷积值。same返回与A大小相同卷积值的中间部分valid当all(size(A)=size(B),C的大小为ma+mb-1,mb+nb-1;否则,C返回。在n维卷积运算
7、中,C的大小为max(size(A)- size(B)+1,0)例子:s = 1 2 1; 0 0 0; -1 -2 -1;A = zeros(10);A(3:7,3:7) = ones(5);H = conv2(A,s);mesh(H)图像处理函数详解histeq功能:直方图均衡化。用法: J = histeq(I,hgram)将原始图像I的直方图变成用户指定的向量hgram。hgram中的各元素的值域为0,1。 J = histeq(I,n)指定直方图均衡后的灰度级数n,默认值为64。 J,T = histeq(I,.)返回从能将图像I的灰度直方图变换成图像J的直方图变换T。 newmap
8、 = histeq(X,map,hgram) newmap = histeq(X,map) newmap,T = histeq(X,.) 这三个是针对索引图像调色板的直方图均衡化,用法和灰度图像的一样。举例: I = imread(tire.tif); J = histeq(I); imshow(I) figure, imshow(J)图像处理函数详解im2bw功能:通过设定亮度将阈值灰度、真彩、索引图像转换为二值图像。用法:BW = im2bw(I,level)BW = im2bw(X,map,level)BW = im2bw(RGB,level)分别将灰度图像、索引图像、真彩色图像转换为二
9、值图像。Level是归一化的阈值,值域为0,1。Level可以由函数graythresh(I)来计算。例子:load treesBW = im2bw(X,map,0.4);imview(X,map),imview(BW)图像处理函数详解im2uint8功能:将图像转换为8位无符号整型。也可将输出值限定在0 255内。用法:I2 = im2uint8(I) RGB2 = im2uint8(RGB) I = im2uint8(BW) X2 = im2uint8(X,indexed)举例:I = reshape(uint8(linspace(0,255,255),5 5) I2 = im2uint8
10、(I)图像处理函数详解imadd功能:实现图像相加运算。用法:Z = imadd(X,Y)例子:I = imread(rice.png);J = imread(cameraman.tif);K = imadd(I,J,uint16);%转换数据类型,然后将图像相加imshow(K,)图像处理函数详解imadjust功能:调节灰度图像的亮度或彩色图像的颜色矩阵。用法: J = imadjust(I,low_in; high_in,low_out; high_out,gamma) 将图像I中的亮度值映射到J中的新值,即将low_in至hige_in之间的值映射到low_out至high_out之间
11、的值。low_in以下与high_in以上的值被剪切掉了,也就是说,low_in以下的值映射到low_out,high_in以上的值映射到high_out。它们都可以使用空的矩阵,默认值是0 1。 newmap = imadjust(map,low_in high_in,low_out high_out,gamma) 调整索引色图像的调色板map。 RGB2 = imadjust(RGB1,low_in high_in,low_out high_out,gamma) 对RGB图像1的红、绿、蓝调色板分别进行调整。随着颜色矩阵的调整,每一个调色板都有唯一的映射值。 参数gamma指定了曲线的形状
12、,该曲线用来映射I的亮度值。如果gamma小于1,映射被加权到更高的输出值。如果gamma大于1,映射被加权到更低的输出值。如果省略了函数的参量,则gamma默认为1(线性映射)。举例: 调整灰度图像:K = imadjust(I,0.3 0.7,); figure, imshow(K) 调整RGB图像:RGB1 = imread(football.jpg); RGB2 = imadjust(RGB1,.2 .3 0; .6 .7 1,); imshow(RGB1), figure, imshow(RGB2)图像处理函数详解imapprox功能:减少索引图像的色彩数,能够指定新色图的色彩数。即
13、对索引图像进行近似处理。用法:Y,newmap = imapprox(X,map,n)Y,newmap = imapprox(X,map,tol)Y = imapprox(X,map,newmap). = imapprox(.,dither_option)Y,newmap = imapprox(X,map,n)表示把索引图像和色图map进行最小值量化逼近。函数返回索引图像和新的色图newmap,色图至多有n种色彩。Y,newmap = imapprox(X,map,tol) 表示把索引图像和色图map进行均衡量化逼近。新色图newmap至多有(floor(1/tol)+1)3种色彩,tol的范
14、围必须为0,1.0。例子:X, map = imread(trees.tif);Y, newmap = imapprox(X, map, 16);imview(Y, newmap)图像处理函数详解imcomplement功能:对图像进行求反运算。用法:IM2 = imcomplement(IM) 计算图像IM的负片。图像IM可以是二值图像、灰度图像、或者RGB图像。IM2和IM类型相同。例子: X = uint8( 255 10 75; 44 225 100); X2 = imcomplement(X) X2 = 0 245 180 211 30 155 bw = imread(text.pn
15、g); bw2 = imcomplement(bw); subplot(1,2,1),imshow(bw) subplot(1,2,2),imshow(bw2) I = imread(glass.png); J = imcomplement(I); imshow(I), figure, imshow(J)图像处理函数详解imfinfo功能:获取图像文件的信息用法:info = imfinfo(filename,fmt) info = imfinfo(filename)参数fmt对应于图像处理工具箱中所有支持的图像文件格式(如bmp,jpg等等)例子:info = imfinfo(canoe.t
16、if)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
17、 Palette StripOffsets: 9x1double SamplesPerPixel: 1 RowsPerStrip: 23 StripByteCounts: 9x1double XResolution: 72 YResolution: 72 ResolutionUnit: Inch Colormap: 256x3double PlanarConfiguration: Chunky TileWidth: TileLength: TileOffsets: TileByteCounts: Orientation: 1 FillOrder: 1 GrayResponseUnit: 0.0
18、100 MaxSampleValue: 255 MinSampleValue: 0 Thresholding: 1图像处理函数详解imhist功能:显示图像的直方图。 输入数据类型可以是无符号8位、16位、有符号16位、单精浮点、字符型、逻辑型等数据。用法: imhist(I,n)计算和显示图像I的直方图,n为指定的灰度级数目,默认为256。如果I是二值图像,那么n仅有两个值。 imhist(X,map)计算和显示索引图像x的直方图,map为调色板。 counts,x = imhist(.)返回直方图数据向量counts或相应的色彩值向量x。举例: I=imread(rice.tif) ims
19、how(I) figure,imhist(I)图像处理函数详解imnoise功能:模仿噪声信息,相当于图像的相加运算。用法:J = imnoise(I,type)J = imnoise(I,type,parameters)参数Type对应的噪声类型如下:gaussian高斯白噪声localvar0均值白噪声poisson泊松噪声salt & pepper盐椒噪声speckle乘性噪声例子:I = imread(eight.tif);J = imnoise(I,salt & pepper,0.02);%密度0.02的盐椒噪声imshow(I)figure, imshow(J)图像处理函数详解im
20、resize功能:改变图像的大小。用法:B = imresize(A,m)B = imresize(A,m,method)B = imresize(A,mrows ncols,method)B = imresize(.,method,n)B = imresize(.,method,h)imrersize函数使用由参数method指定的插值运算来改变图像的大小。method的几种可选值:nearest(默认值)最近邻插值bilinear双线性插值bicubic双三次插值B = imresize(A,m)表示把图像A放大m倍B = imresize(.,method,h)中的h可以是任意一个FIR
21、滤波器(h通常由函数ftrans2、fwind1、fwind2、或fsamp2等生成的二维FIR滤波器)。例子:I = imread(circuit.tif);J =imresize(I,1.25);%使用默认的最近邻插值法放大图像1.25倍imshow(I)figure, imshow(J)图像处理函数详解imdilate功能:对图像实现膨胀操作。用法:IM2 = imdilate(IM,SE)IM2 = imdilate(IM,NHOOD)IM2 = imdilate(IM,SE,PACKOPT)IM2 = imdilate(.,PADOPT)IM2 = imdilate(IM,SE) 膨
22、胀灰度,二值,压缩二值图像IM,返回IM2。参数SE为由strel函数返回的结构元素或者结构元素对象组。IM2 = imdilate(IM,NHOOD)膨胀图像IM,这里NHOOD是定义结构元素邻域0和1的矩阵。IM2 = imdilate(IM,SE,PACKOPT)定义IM是否是一个压缩的二值图像。IM2 = imdilate(.,PADOPT)指出输出图像的大小。例子:I = imread(cameraman.tif);se = strel(ball,5,5);I2 = imdilate(I,se);imshow(I), title(Original)figure, imshow(I2)
23、, title(Dilated图像处理函数详解imerode功能:对图像实现腐蚀操作,即膨胀操作的反操作。用法:IM2 = imerode(IM,SE)IM2 = imerode(IM,NHOOD)IM2 = imerode(IM,SE,PACKOPT,M)IM2 = imerode(.,PADOPT)IM2 = imerode(IM,SE) 腐蚀灰度,二值,压缩二值图像IM,返回IM2。参数SE为由strel函数返回的结构元素或者结构元素对象组。IM2 = imerode(IM,NHOOD)腐蚀图像IM,这里NHOOD是定义结构元素邻域0和1的矩阵。IM2 = imerode(.,PADOP
24、T)指出输出图像的大小(是否与输入图像大小一致)。例子:originalBW = imread(circles.png);se = strel(disk,11);erodedBW = imerode(originalBW,se);imview(originalBW), imview(erodedBW)图像处理函数详解imopen功能:对图像实现开运算,开运算一般能平滑图像的轮廓,消弱狭窄的部分,去掉细的突出。用法:IM2 = imopen(IM,SE)IM2 = imopen(IM,NHOOD)IM2 = imopen(IM,SE)用结构元素SE实现灰度图像或二值图像的IM的形态开运算。SE可
25、以是单个结构元素对象或者结构元素对象数组。IM2 = imopen(IM,NHOOD)用结构元素strel(NHOOD)执行开运算。例子:I = imread(snowflakes.png);se = strel(disk,5);I_opened = imopen(I,se);imview(I_opened,)图像处理函数详解imclose功能:对图像实现闭运算,闭运算也能平滑图像的轮廓,但与开运算相反,它一般融合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙。用法:IM2 = imclose(IM,SE)IM2 = imclose(IM,NHOOD)用法和imopen相同,请在本论坛查找!
26、例子:originalBW = imread(circles.png); se = strel(disk,10); closeBW = imclose(originalBW,se);imview(closeBW) 图像处理函数详解mat2gray功能:将矩阵转化为灰度图像。用法:I = mat2gray(A,amin amax) 把一个double类的任意数组转换成取值范围为0 1的亮度图像。其中图像I的取值范围也在0(黑色)到1(白色)之间。参数amin和amax表示将A中小于amin的值转换为0,将A中大于amax的值转换为1。 I = mat2gray(A) 将矩阵A中实际最小值和最大值分别赋给amin和amax。举例:I = imread(rice.png); J = filter2(fspecial(sobel),I); K = mat2gray(J); imshow(I), figure, imshow(K)图像处理函数详解montage功能:在同一时间显示多帧
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1