【发布时间】:2017-08-19 20:52:21
【问题描述】:
我需要生成具有各种长度、度数和宽度的线性平面结构元素(用于形态图像处理)。我正在使用 strel 函数,它只有长度和度数作为输入。如何在 MATLAB 代码中为线性 SE 指定各种宽度?
请帮帮我 提前谢谢你
【问题讨论】:
标签: matlab mathematical-morphology
我需要生成具有各种长度、度数和宽度的线性平面结构元素(用于形态图像处理)。我正在使用 strel 函数,它只有长度和度数作为输入。如何在 MATLAB 代码中为线性 SE 指定各种宽度?
请帮帮我 提前谢谢你
【问题讨论】:
标签: matlab mathematical-morphology
您必须使用'arbitrary' 选项而不是'line' 并提供一个描述结构元素形状的矩阵作为输入。 strel() 不提供任何选项来改变结构元素的宽度,如果你选择它是线条,这有点直观,因为我们在几何中描述的线条具有恒定的宽度。
您可以使用'line' 选项作为您的起点。将行保存到变量中:
line_elem = strel('line', length, deg);
line_elem 是一个由 0 和 1 组成的矩阵,代表行 - 您可以对其进行编辑以适合您的目的,然后使用 'arbitrary' 选项将其提供给 strel()。例如。如果您希望线条的宽度为 3 像素而不是 1,只需在 line_elem 的每一行中值等于 1 的单元格的左侧和右侧添加一个像素。如果您想改变宽度,只需编辑每一行并更改每行中不同数量的像素。如果你想改变度数,你可以尝试使用上面的代码生成几条不同度数和长度的线,然后将它们粘合在一起,然后如果你想改变宽度,编辑结果矩阵的行。
【讨论】:
line,因为它可以轻松生成各种长度和度数。不幸的是,我不知道如何在arbitrary 输入的矩阵中定义具有各种长度、宽度和度数的线性 SE。你能帮帮我吗?