MATLAB图像处理函数大全(5)

2019-01-26 14:01

看看第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元向量,存储区域像素的索引下标。 'PixelList'p行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中区域个数和像素个数的属性。例如:

Zhiku.jiaking.com

'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'表示在每一维的最后一个元素后填充;

Zhiku.jiaking.com

'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的数组

Zhiku.jiaking.com

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:27

[mri(:,:,:,frame),map]=imread('mri.tif',frame); %把每一帧读入内存中 end

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

Zhiku.jiaking.com

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)

Zhiku.jiaking.com


MATLAB图像处理函数大全(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2009-2010学年第一学期七年级数学期末评估卷附答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: