strel

形态结构元素

描述

一个strelObject表示一个扁平的形态结构化元素,这是形态扩张和侵蚀操作的重要组成部分。

平面结构元素是一个二元值邻域,可以是二维的,也可以是多维的真正的像素包括在形态计算,和像素则不是。结构元素的中心像素,称为起源,表示正在处理的图像中的像素。使用strel函数(如下所述)来创建平面结构元素。您可以对二进制和灰度图像使用平面结构元素。下图说明了一个平面结构元素。

要创建非平面结构元素,请使用offsetstrel

创建

描述

SE = strel(nhood创建具有指定邻域的平面结构元素nhood

您也可以使用语法SE = strel('任意',nhood创建具有指定邻域的平面结构元素。

SE = strel('钻石',r创建一个菱形结构元素,其中r指定从构造元素原点到菱形点的距离。

例子

SE = strel('磁盘',rn创建一个圆盘形状的结构元素,其中r指定半径和n指定用于近似磁盘形状的行结构元素的数目。当结构元素使用近似时,使用圆盘近似的形态操作运行得更快。

SE = strel('八角形',r创建一个八角形结构元素,其中r指定从构造元素原点到八边形两侧的距离,如沿水平轴和垂直轴测量的那样。r必须是3的非负倍数。

例子

SE = strel('line', 'line',len创建一个线性结构元素,该元素与邻域中心对称,具有近似的长度len和角度

SE = strel('矩形',(mn)创建大小为矩形的结构元素(mn)

例子

SE = strel('方形',w创建宽度为的正方形结构元素w像素。

SE = strel('立方体',w创建一个三维立方体结构元素,其宽度为w像素。

SE = strel('长方体',[m n p]创建一个三维立方体结构元素的大小[m n p]

例子

SE = strel('球面',r创建一个三维球面结构元素,其半径为r像素。

兼容性

下面的语法仍然有效,但是offsetstrel是创建这些非平面结构元素形状的首选方法:

  • SE = strel('任意',nhood,h)

  • SE = strel('球',r,h,n)

以下语法仍然有效,但不建议使用:

  • SE = strel('pair',offset)

  • SE = strel('周期性线',p,v)

输入参数

全部展开

邻域,指定为任意维度的数值数组。的所有非零像素nhood属于形态运算的邻域。的中心(或原点)nhood它的中心元素是地板((尺寸(罩)+ 1)/2)

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

的结构元素的半径x-y平面,指定为正整数。

  • 对于圆盘形状,r是从原点到圆盘边缘的距离。

  • 对于菱形,r是从构造元素原点到金刚石各点的距离。

  • 对于八边形,r是从构造元素原点到八边形两侧的距离,沿水平轴和垂直轴测量。r必须是3的倍数。

数据类型:

用于近似形状的周期线结构元素的数目,指定为046,或8。当n大于0时,圆盘形结构单元近似为n周期线结构元素。当n0strel是否没有近似,结构元素成员包含所有中心不大于的像素r远离原点。当结构元素使用近似时,使用圆盘近似的形态操作运行得更快(n> 0).有时它是必要的strel在近似中使用两个额外的线结构元素,在这种情况下,使用的分解结构元素的数量为n + 2

n的值 行为
n> 0 strel使用n(有时n + 2)周期线形结构元素,以近似形状。
n= 0 strel不使用任何近似。结构元素成员由中心不大于的所有像素组成r距原点的距离和相应的高度值由所指定的椭球公式确定rh

数据类型:

线性结构元件的长度,用正数表示。len约为线两端结构元素成员的中心之间的距离。

数据类型:

线性结构元素的角度,以度为单位,指定为数值标量。角度是从水平轴逆时针方向测量的。

数据类型:

矩形结构元素的大小,指定为2元素的正整数向量。结构元素有行和n列。

数据类型:

方形或立方结构单元的宽度,用正整数表示。

数据类型:

立方体结构元素的大小,指定为3个元素的正整数向量。结构元素有行,n列和p飞机。

数据类型:

属性

全部展开

构造元素邻域,指定为逻辑数组。

数据类型:逻辑

结构元素的尺寸,指定为非负标量。

数据类型:

对象的功能

imdilate 扩张的形象
imerode 损害形象
imclose 形态接近图像
imopen 形态开放图像
imbothat 低帽过滤
imtophat 上流社会的过滤
bwhitmiss 二进制碰运气操作
分解 返回分解的结构元素序列
反映 反映结构元素
翻译 翻译结构元素

例子

全部折叠

创建一个11乘11的正方形结构元素。

SE = strel(“广场”11)
SE = strel是一个方形结构元素,具有如下属性:邻域:[11x11 logical]维数:2

创建一个线形结构元素,长度为10,角度为45度。

SE = strel(“行”, 10, 45)
SE = strel是一个线形结构元素,属性:邻域:[7x7逻辑]维数:2

查看结构元素。

SE。社区
ans =7x7逻辑数组0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0

创建一个半径为15的圆盘形结构元素。

SE3 = strel(“磁盘”15)
SE3 = strel是一个圆盘形状的结构元素,其属性:邻域:[29x29 logical]维数:2

显示盘形结构元素。

图imshow (SE3.Neighborhood)

创建一个半径为15的3-D球形结构元素。

SE = strel(“球”15)
SE = strel是一个球形结构元素,属性:邻域:[31x31x31 logical]维数:3

显示结构元素。

图等值面(SE.Neighborhood)

提示

  • 构造不使用近似的元素(n= 0)不适合计算颗粒测量。

算法

适用于所有形状“任意的”,构造元素是使用一系列技术构造的,这些技术统称为构造元素分解。其原理是,一些大型结构单元的膨胀可以通过一系列较小结构单元的膨胀更快地计算出来。例如,通过先用1 × 11的结构单元进行膨胀,然后再用11 × 1的结构单元进行膨胀,可以实现用11 × 11的正方形结构单元进行膨胀。这导致理论上的性能提高了5.5倍,尽管在实践中实际的性能提高要少一些。的结构元素分解“磁盘”形状只是一个近似值,其他的分解都是精确的。

兼容性的考虑

全部展开

R2017b的行为发生了变化

参考文献

[1] van den Boomgard, R,和R. van Balen,“使用位图图像的快速形态学图像变换方法”,计算机视觉,图形学和图像处理:图形模型和图像处理,第54卷第3期,第252-254页,1992年5月。

[2]亚当斯,R.,“圆盘和球体的径向分解”,计算机视觉,图形学和图像处理:图形模型和图像处理,第55卷,第5号,325-332页,1993年9月。

[3] Jones, R.和P. Soille,“周期线:定义,级联,以及在颗粒测量学中的应用,”模式识别信第17卷,第1057-1063页,1996年。

扩展功能

另请参阅

R2006a之前介绍