MATLAB中图像函数大全 详解与例子.docx_第1页
MATLAB中图像函数大全 详解与例子.docx_第2页
MATLAB中图像函数大全 详解与例子.docx_第3页
MATLAB中图像函数大全 详解与例子.docx_第4页
MATLAB中图像函数大全 详解与例子.docx_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图像处理函数详解strel功能:用于膨胀腐蚀及开闭运算等操作的结构元素对象(本论坛随即对膨胀腐蚀等操作进行讲解)。用法:SE = strel(shape,parameters)创建由指定形状shape对应的结构元素。其中shape的种类有arbitrarypairdiamondperiodiclinediskrectanglelinesquareoctagon参数parameters一般控制SE的大小。例子:se1 = strel(square,6)% 创建6*6的正方形se2 = strel(line,10,45)% 创建直线长度10,角度45se3 = strel(disk,15)% 创建圆盘半径15se4 = strel(ball,15,5)% 创建椭圆体,半径15,高度5图像处理函数详解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(.)BW = roipoly(I,c,r)表示用向量c、r指定多边形各点的X、Y坐标。BW选中的区域为1,其他部分的值为0.BW = roipoly(I)表示建立交互式的处理界面。BW = roipoly(x,y,I,xi,yi)表示向量x与y建立非默认的坐标系,然后在指定的坐标系下选择由向量xi,yi指定的多边形区域。例子: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)figure, imshow(BW)图像处理函数详解roifilt2功能:用于对一个区域进行滤波。用法:J = roifilt2(h,I,BW)J = roifilt2(I,BW,fun)J = roifilt2(I,BW,fun,P1,P2,.)J = roifilt2(h,I,BW)表示使用滤波器h对图像I中用二值掩模BW选中的区域滤波。BW为与I大小相同的二值图像。J = roifilt2(I,BW,fun,P1,P2,.)表示用fun函数处理区域滤波图像I。参数P1、P2等为fun函数的输入参数。例子:I = imread(eight.tif);c = 222 272 300 270 221 194;r = 21 21 75 121 121 75;BW = roipoly(I,c,r);h = fspecial(unsharp);%指定滤波器J = roifilt2(h,I,BW);imshow(J), figure, imshow(J)图像处理函数详解roifill(ROIregion-of-interest)功能:对指定区域进行填充。用法:J = roifill(I,c,r)J = roifill(I)J,BW = roifill(.)J = roifill(x,y,I,xi,yi)x,y,J,BW,xi,yi = roifill(.)J = roifill(I,c,r) 填充由向量c,r指定的多边形,c与r分别为多边形的各顶点X、Y坐标。可用于擦除图像中的小物体。J = roifill(I)用于交互式处理界面。J = roifill(I,BW)用BW(与I大小一致)掩模填充此区域。如果为多个多边形,则分别执行插值填充。例子: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)图像处理函数详解roicolor功能:可以根据颜色选定区域。用法:BW = roicolor(A,low,high)BW = roicolor(A,v)BW = roicolor(A,low,high)色图范围为low high,返回这些像素选择区域。BW为大小与A相同的数组,若A中元素值在low high范围内,则返回值1,否则返回0.BW = roicolor(A,v)返回图像A中像素与向量v相匹配的区域,BW为二值图像,1值为A中与v相匹配的地方。例子:I = imread(rice.png); BW = roicolor(I,128,255);imshow(I);figure, imshow(BW)matlab图像处理函数详解rgb2gray功能:将真彩色图像转换成灰度图像或者将彩色色图转换成灰度色图。用法:I = rgb2gray(RGB)newmap = rgb2gray(map)I = rgb2gray(RGB) 将真彩色图像RGB转换成灰度图像Inewmap = rgb2gray(map) 将彩色色图map转换成灰度色图newmap例子:X=imread(peppers.png);BW = rgb2gray(X);imview(BW)Matlab图像处理函数:regionprops这里给出在Matlab图像处理工具箱中非常重要的一个图像分析函 数:regionprops。顾名思义:它的用途是get the properties of region,即用来度量图像区域属性的函数。语法STATS = regionprops(L,properties)描述测量标注矩阵L中每一个标注区域的一系列属性。L中不同的正整数元素对应不同的区域,例如:L中 等于整数1的元素对应区域1;L中等于整数2的元素对应区域2;以此类推。返回值STATS是一个长度为max(L(:)的结构数组,结构数组的相应域 定义了每一个区域相应属性下的度量。properties 可以是由逗号分割的字符串列表、饱含字符串的单元数组、单个字符串 all 或者 basic。如果 properties 等于字符串 all,则所有下述字串列表中的度量数据都将被计算,如果 properties 没有指定或者等于 basic,则属性: Area, Centroid, 与 BoundingBox 将被计算。下面的列表就是所有有效的属性字符串,它们大小写敏感并且可以缩写。 属性字符串列表AreaEquivDiameterMajorAxisLengthBoundingBoxEulerNumberMinorAxisLengthCentroidExtentOrientationConvexAreaExtremaPixelIdxListConvexHullFilledAreaPixelListConvexImageFilledImageSolidityEccentricityImage属性详细定义本部分将结合一个具体的例子说明各种字串相关属性的意义,矩阵取自在蚁蛉模式识别中做过预处理后的斑纹分割图像,如下图: 这是一幅二值图像,在应用regionprops函数之前必须将其标注,可以调用 bwlabel函数与伪彩色处理,标注后的图像如下图:下面基于以上的材料来考察属性的含义。 Area是标量,计算出在图像各个区域中像素总个数。注意:这个数值可能与由函数 bwarea 计算的值有轻微的不同。对于这样一个数值,我们可以使用它除以整个图像区域的像素个数而得到斑纹比例,可以作为模式识别的候选特征,并且这个特征是仿射不 变的。在本例中最后计算出的面积向量是 3.8952,9.7213,17.663,3.5762,1.3432,1.6958,0.41974,0.41974,21.625,12.324,4.8187,1.5111/10000.BoundingBox 是1行ndims(L)*2列的向量,即包含相应区域的最小矩形。BoundingBox 形式为 ul_corner width,这里 ul_corner 以 x y z . 的坐标形式给出边界盒子的左上角、boxwidth 以 x_width y_width . 形式指出边界盒子沿着每个维数方向的长度。本例的各部分区域最小矩形如下图!注意:请在这熟悉一下函数rectangle的使用方法。 Centroid是1行ndims(L)列的向量,给出每个区域的质心(重心)。 注意:Centroid 的第一个元素是重心水平坐标(x坐标)、第二个元素是重心垂直坐标(y坐标)。Centroid 所有其它元素则按照维顺序排列。下图采用以中心为圆心的小圆来演示质心检测的效果:图中各质心坐标(标准化后的)依次为: (x,y)=0.10478, 0.767390.11883, 0.0815450.19586, 0.610920.30701, 0.308070.65712, 0.316130.73165, 0.305310.74548, 0.353780.80624, 0.728020.84546, 0.615640.90554, 0.0795740.93477, 0.778710.97611, 0.15576MajorAxisLength是标量,与区域具有相同标准二阶中心矩的椭圆的长轴长度(像素意义下)。本属性只支持二维标注矩阵。 MinorAxisLength 是标量,与区域具有相同标准二阶中心矩的椭圆的短轴长度(像素意义下)。本属性只支持二维标注矩阵。 Eccentricity 是标量,与区域具有相同标准二阶中心矩的椭圆的离心率(可作为特征)。本属性只支持二维标注矩阵。 Orientation 是标量,与区域具有相同标准二阶中心矩的椭圆的长轴与x轴的交角(度)。本属性只支持二维标注矩阵。本例的各区域椭圆数据为:长 轴:18.767,45.172,43.003,30.687,16.505,15.698,5.8833,5.8833,46.954,38.873,22.929,15.429 短 轴:16.211,26.079,32.709,9.8458,6.8019,8.6386,5.8833,5.8833,35.976,31.022,16.98,7.8038 离心 率:0.50387,0.81652,0.6492,0.94713,0.91114,0.83497,0,0,0.64262,0.60262,0.67205,0.86266 方向 角:-29.219,-32.192,-9.3909,-50.904,-70.333,48.823,0,0,14.035,17.986,3.0319,-34.238 我们可以考察离心率的变化趋势,得到对于整个区域中的各区域的似圆性如何的大致感觉,比如下图是12个区域的离心率变化情形:由上图可以看出区域整体的似圆性并不好,实际上可以考虑使用离心率向量作为一个模式识别的特 征! Image 二值图像,与某区域具有相同大小的逻辑矩阵。你可以用这个属性直接将每个子区域提取出来,然后再作相应的处理!比如本例的第一个斑纹区域提出后是。 FilledImage 与上相同,唯一区别是这是个做了填充的逻辑矩阵!本例中与上面的没有区别,只有区域有空洞时才有明显差别。 FilledArea 是标量,填充区域图像中的 on 像素个数。 ConvexHull 是p行2列的矩阵,包含某区域的最小凸多边形。此矩阵的每一行存储此多边形一个顶点的xy坐标。此属性只支持2维标注矩阵。例如:本例中的所有子区域的最 小凸多边形图形如下图看看第2个区域的大图。 ConvexImage 二值图像,用来画出上述的区域最小凸多边形。同时此凸包内的像素均打开,图像尺寸与此区域对应边界矩形相同。此属性只支持2维标注矩阵。例如:本例中的第 2个子区域的最小凸多边形图形为。注意:此处函数roipoly很有用! ConvexArea 是标量,填充区域凸多边形图像中的 on 像素个数。 EulerNumber 是标量,几何拓扑中的一个拓扑不变量-欧拉数,等于图像中目标个数减去这些目标中空洞的个数。 此属性只支持2维标注矩阵。本例中的欧拉数均为1。 Extrema 8行2列矩阵,八方向区域极值点。矩阵每行存储这些点的xy坐标,向量格式为 top-left top-right right-top right-bottom bottom-right bottom-left left-bottom left-top。此属性只支持2维标注矩阵。 EquivDiameter 是标量,等价直径:与区域具有相同面积的圆的直径。计算公式为:sqrt(4*Area/pi)。. 此属性只支持2维标注矩阵。本例标准化后的12区域直径向量为: 2.227,3.5182,4.7423,2.1339,1.3077,1.4694,0.73105,0.73105,5.2473,3.9612,2.477,1.3871/100.Solidity 是标量,同时在区域与其最小凸多边形中的像素比例。计算公式为:Area/ConvexArea,这也是个仿射特征,实际上反映出区域的固靠性程度。此属 性只支持2维标注矩阵。本例12区域凸元素比例向量为: 0.97071,0.66171,0.90846,0.86585,0.84211,0.94393,1,1,0.9096,0.75514,0.90823,0.94737.Extent 是标量,同时在区域与其最小边界矩形中的像素比例。计算公式为:Area除以边界矩形面积,这也是个仿射特征,实际上反映出区域的扩展范围程度。此属性只 支持2维标注矩阵。不再给出计算结果! PixelIdxList p元向量,存储区域像素的索引下标。 PixelListp行ndims(L)列矩阵,存储上述索引对应的像素坐标。支持类输入的标注矩阵L可以有任意的数值类型。 提醒使用逗号分割列表语法当你基于regionprops函数的输出作算法设计时,使用逗号分割列表语法就凸显出其非常的价值。例如:对于一个存储标量的 属性,可以利用此语法创建一个包含图像中不同区域内此属性值的向量。例如以下两句是等价的: stats(1).Area, stats(2).Area, ., stats(end).Areastats.Area因此,可以使用下面的方法创建相应的向量: regionprops(L,Area);allArea = stats.Area;allArea 就是一个与结构数组 stats 具备相同长度的向量。 基于特定原则的区域选择当你要基于特定准则条件选择某个区域时,将函数 ismember 与 regionprops 联合使用是很有用处的。例如:创建一个只包含面积大于80的二值图像,用以下命令 idx = find(stats.Area 80);BW2 = ismember(L,idx);计算性能考虑大多数的属性测量计算时间都非常地少,除了那些非常依赖于图像L中区域个数与像素个数的属性。例如: ConvexHull ConvexImage ConvexArea FilledImage 另外建议一次性计算所有属性值,因为分开计算与一起计算时间相差无几!使用二值图像工作在调用regionprops之前必须将二值图像转变为标注矩阵。 两个函数可以做到: L = bwlabel(BW); L = double(BW);注意:虽然这两个函数从同一二值图像产生不同的标注矩阵,但是它们是等效的!例如:给出如下的二值矩阵BW, 1 1 0 0 0 01 1 0 0 0 00 0 0 0 0 00 0 0 0 1 10 0 0 0 1 1bwlabel 创建一个包含两个分别由整数1与2标注的连续区域标注矩阵 mylabel = bwlabel(BW)mylabel = 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 2 2double 创建一个包含一个由整数1标注的不连续区域标注矩阵。 mylabel2 = double(BW)mylabel2 = 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1regionprops 并不负责自动转换二值图像数据类型,而是由你自己决定使用何种数据转换方法来存储自己想要的数据。 regionprops函数的扩展思路在regionprops函数的基础上,你可以使用它提供的基本数据来扩展它的功能,比如我就将区域的曲率数据与骨 架数据作为它的另外属性值来开发,从而希望它能用来做更细致的特征提取。图像处理函数详解padarray功能:填充图像或填充数组。用法:B = padarray(A,padsize,padval,direction) A为输入图像,B为填充后的图像,padsize给出了给出了填充的行数与列数,通常用r c来表示。padval与direction分别表示填充方法与方向。它们的具体值与描述如下:padval:symmetric表示图像大小通过围绕边界进行镜像反射来扩展; replicate表示图像大小通过复制外边界中的值来扩展; circular图像大小通过将图像看成是一个二维周期函数的一个周期来进行扩展。 direction:pre表示在每一维的第一个元素前填充; post表示在每一维的最后一个元素后填充; both表示在每一维的第一个元素前与最后一个元素后填充,此项为默认值。 若参量中不包括direction,则默认值为both。若参量中不包含padval,则默认用零来填充。若参量中不包括任何参数,则默认填充为零且方向为both。在计算结束时,图像会被修剪成原始大小。举例: A = 1 2; 3 4; B = padarray(A,3 2,replicate,post)图像处理函数详解nlfilter功能:用来执行通用的滑动邻域操作。用法:B = nlfilter(A,m n,fun)B = nlfilter(A,m n,fun,P1,P2,.)B = nlfilter(A,indexed,.)B = nlfilter(A,m n,fun)表示对图像A的每一个m*n滑块应用函数fun。fun函数必须接受m*n块作为输入,并返回一个标量y,形如:c=fun(x)c为m*n块x的中心像素点的输入值。例子:B = nlfilter(A,3 3,myfun);其中myfun是以m文件如下:function scalar = myfun(x)scalar = median(x(:);图像处理函数详解montage功能:在同一时间显示多帧图像中的所有帧。用法:montage(I) montage(BW)montage(X,map)montage(RGB)h = montage(.)montage(I)显示灰度图像I共k帧,I为m*n*1*k的数组montage(BW) 显示二值图像I共k帧,I为m*n*1*k的数组montage(X,map)显示索引图像I共k帧,色图由map指定为所有的帧图像的色图,X为m*n*1*k的数组montage(RGB)显示真彩色图像GRB共k帧,RGB为m*n*3*k的数组例子:mri=uint8(zeros(128,128,1,27);for frame=1:27mri(:,:,:,frame),map=imread(mri.tif,frame);%把每一帧读入内存中endmontage(mri,map);函数详解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)图像处理函数详解imclose功能:对图像实现闭运算,闭运算也能平滑图像的轮廓,但与开运算相反,它一般融合窄的缺口与细长的弯口,去掉小洞,填补轮廓上的缝隙。用法:IM2 = imclose(IM,SE)IM2 = imclose(IM,NHOOD)用法与imopen相同,请在本论坛查找!例子:originalBW = imread(circles.png); se = strel(disk,10); closeBW = imclose(originalBW,se);imview(closeBW) 图像处理函数详解imopen功能:对图像实现开运算,开运算一般能平滑图像的轮廓,消弱狭窄的部分,去掉细的突出。用法:IM2 = imopen(IM,SE)IM2 = imopen(IM,NHOOD)IM2 = imopen(IM,SE)用结构元素SE实现灰度图像或二值图像的IM的形态开运算。SE可以是单个结构元素对象或者结构元素对象数组。IM2 = imopen(IM,NHOOD)用结构元素strel(NHOOD)执行开运算。例子:I = imread(snowflakes.png);se = strel(disk,5);I_opened = imopen(I,se);imview(I_opened,)图像处理函数详解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(.,PADOPT)指出输出图像的大小(是否与输入图像大小一致)。例子:originalBW = imread(circles.png);se = strel(disk,11);erodedBW = imerode(originalBW,se);imview(originalBW), imview(erodedBW)图像处理函数详解imdilate功能:对图像实现膨胀操作。用法:IM2 = imdilate(IM,SE)IM2 = imdilate(IM,NHOOD)IM2 = imdilate(IM,SE,PACKOPT)IM2 = imdilate(.,PADOPT)IM2 = imdilate(IM,SE) 膨胀灰度,二值,压缩二值图像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), title(Dilated)图像处理函数详解imresize功能:改变图像的大小。用法: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滤波器(h通常由函数ftrans2、fwind1、fwind2、或fsamp2等生成的二维FIR滤波器)。例子:I = imread(circuit.tif);J =imresize(I,1.25);%使用默认的最近邻插值法放大图像1.25倍imshow(I)figure, imshow(J)图像处理函数详解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)图像处理函数详解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) imshow(I) figure,imhist(I)图像处理函数详解imfinfo功能:获取图像文件的信息用法:info = imfinfo(filename,fmt) info = imfinfo(filename)参数fmt对应于图像处理工具箱中所有支持的图像文件格式(如bmp,jpg等等)例子: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 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.0100 MaxSampleValue: 255 MinSampleValue: 0 Thresholding: 1图像处理函数详解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.png); 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)图像处理函数详解imapprox功能:减少索引图像的色彩数,能够指定新色图的色彩数。即对索引图像进行近似处理。用法: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的范围必须为0,1.0。例子:X, map = imread(trees.tif);Y, newmap = imapprox(X, map, 16);imview(Y, newmap)图像处理函数详解imadjust功能:调节灰度图像的亮度或彩色图像的颜色矩阵。用法: J = imadjust(I,low_in; high_in,low_out; high_out,gamma) 将图像I中的亮度值映射到J中的新值,即将low_in至hige_in之间的值映射到low_out至high_out之间的值。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指定了曲线的形状,该曲线用来映射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)图像处理函数详解imadd功能:实现图像相加运算。用法:Z = imadd(X,Y)例子:I = imread(rice.png);J = imread(cameraman.tif);K = imadd(I,J,uint16);%转换数据类型,然后将图像相加imshow(K,)图像处理函数详解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(I)图像处理函数详解im2bw功能:通过设定亮度将阈值灰度、真彩、索引图像转换为二值图像。用法:BW = im2bw(I,level)BW = im2bw(X,map,level)BW = im2bw(RGB,level)分别将灰度图像、索引图像、真彩色图像转换为二值图像。Level是归一化的阈值,值域为0,1。Level可以由函数graythresh(I)来计算。例子:load treesBW = im2bw(X,map,0.4);imview(X,map),imview(BW)图像处理函数详解histeq功能:直方图均衡化。用法: J = histeq(I,hgram)将原始图像I的直方图变成用户指定的向量hgram。hgram中的各元素的值域为0,1。 J = histeq(I,n)指定直方图均衡后的灰度级数n,默认值为64。 J,T = histeq(I,.)返回从能将图像I的灰度直方图变换成图像J的直方图变换T。 newmap = histeq(X,map,hgram) newmap = histeq(X,map) newmap,T = histeq(X,.) 这三个是针对索引图像调色板的直方图均衡化,用法与灰度图像的一样。举例: I = imread(tire.tif); J = histeq(I); imshow(I) figure, imshow(J)图像处理函数详解dither功能:可以把真彩色图像装换成索引图像或者把灰度图像转换为二值图像。用法:X = dither(RGB,map)BW = dither(I) X = dither(RGB,map,Qm,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是两个离散变量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维卷积运算中,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)图像处理函数详解colfilt功能:以列方法进行邻域处理,也可执行常规非线性滤波(自己理解的)。用法:B = colfilt(A,m n,block_type,fun)该函数生成了一幅图像,在中,每一列对应于其中心位于图像内某个位置的邻域所包围 的像素。然后将函数应用于该矩阵中。m n表示大小为m行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论