形态结构要素
strel代表平坦的形态构造元素,这是形态扩张和侵蚀操作的重要组成部分。
平面结构元素是二维或二维的二进制值邻域,其中在形态计算中包含真实像素,而不包含错误像素。 结构元素的中心像素(称为原点)标识正在处理的图像中的像素。 使用strel函数(如下所述)创建平面结构元素。 可以对二进制图像和灰度图像使用平面结构元素。 下图说明了平面结构元素。

要创建非平面结构元素,请使用offsetstrel。
Syntax
SE = strel(nhood)
SE = strel('arbitrary',nhood)
SE = strel('diamond',r)
SE = strel('disk',r,n)
SE = strel('octagon',r)
SE = strel('line',len,deg)
SE = strel('rectangle',[m n])
SE = strel('square',w)
SE = strel('cube',w)
SE = strel('cuboid',[m n p])
SE = strel('sphere',r)
Description
SE = strel(nhood)创建具有指定邻域nhood的平面结构元素。
还可以使用语法SE = strel('arbitrary',nhood)创建具有指定邻域的平面结构元素。
SE = strel('diamond',r)创建一个菱形的结构元素,其中r指定从结构元素原点到钻石点的距离。
SE = strel('disk',r,n)创建一个圆盘形结构元素,其中r指定半径,n指定用于
近似圆盘形状的线形结构元素的数量。当结构化元素使用近似值时,使用圆盘近似值的形态运算的运行
速度要快得多。
SE = strel('octagon',r)创建一个八边形结构元素,其中r指定沿水平轴和垂直轴测量的从结构
元素原点到八边形侧面的距离。 r必须是3的非负倍数。
SE = strel('line',len,deg)创建一个线性结构元素,该元素相对于邻域中心对称,
长度为len,角度为deg。
SE = strel('rectangle',[m n])创建一个大小为[m n]的矩形结构元素。
SE = strel('square',w)创建一个宽度为w像素的正方形结构元素。
SE = strel('cube',w)创建一个宽度为w像素的3-D立方结构元素。
SE = strel('cuboid',[m n p])创建大小为[m n p]的3-D长方体结构元素。
SE = strel('sphere',r)创建一个半径为r个像素的3-D球形结构元素。
兼容性
以下语法仍然有效,但是offsetstrel是创建这些非平面结构元素形状的首选方法:
SE = strel('arbitrary',nhood,h)
SE = strel('ball',r,h,n)
以下语法仍然有效,但不建议使用:
SE = strel('pair',offset)
SE = strel('periodicline',p,v)
Examples
创建方形结构元素
创建一个11乘11的正方形结构元素。
SE = strel('square', 11)
SE =
strel is a square shaped structuring element with properties:
Neighborhood: [11x11 logical]
Dimensionality: 2
创建线形结构元素
以45度角创建长度为10的线形结构元素。
SE = strel('line', 10, 45)
%View the structuring element.
SE.Neighborhood
SE =
strel is a line shaped structuring element with properties:
Neighborhood: [7x7 logical]
Dimensionality: 2
View the structuring element.
ans = 7x7 logical array
0 0 0 0 0 0 1
0 0 0 0 0 1 0
0 0 0 0 1 0 0
0 0 0 1 0 0 0
0 0 1 0 0 0 0
0 1 0 0 0 0 0
1 0 0 0 0 0 0
创建磁盘形结构元素
创建一个半径为15的盘状结构元素。
SE3 = strel('disk', 15)
figure
imshow(SE3.Neighborhood)
SE3 =
strel is a disk shaped structuring element with properties:
Neighborhood: [29x29 logical]
Dimensionality: 2
创建3D球形结构元素
SE = strel('sphere', 15)
figure
isosurface(SE.Neighborhood)
SE =
strel is a sphere shaped structuring element with properties:
Neighborhood: [31x31x31 logical]
Dimensionality: 3
Algorithms
对于除“任意”形状之外的所有形状,结构元素都是使用称为结构元素分解的一系列技术来构造的。 原理是,通过使用一系列较小的结构元素进行膨胀,可以更快地计算出一些大型结构元素的膨胀。 例如,可以通过首先用1×11结构元素然后通过11×1结构元素进行膨胀来实现11×11正方形结构元素的膨胀。 尽管在实践中实际的性能改进要少一些,但这会导致理论性能提高5.5倍。 用于“圆盘”形状的结构元素分解是一个近似值,所有其他分解都是精确的。