在MATLAB中生成多尺度线性结构元素

时间:2017-08-19 20:52:22

标签: matlab mathematical-morphology

我需要生成具有不同长度,度数和宽度的线性扁平结构元素(用于形态图像处理)。我正在使用 strel 功能,它只有长度和度数作为输入。我如何在MATLAB代码中为线性SE指定各种宽度?

请帮帮我 提前谢谢你

1 个答案:

答案 0 :(得分:0)

您必须使用'arbitrary'选项而不是'line',并提供一个矩阵来描述结构元素的形状作为输入。 strel()没有提供任何选项来改变结构元素的宽度,如果你选择它是直线,这是直观的,因为我们在几何中描述的线条具有恒定的宽度。

您可以使用'line'选项作为起点。将该行保存到变量:

line_elem = strel('line', length, deg);

line_elem是一个0和1表示行的矩阵 - 您可以编辑它以符合您的目的,然后使用strel()选项将其提供给'arbitrary'。例如。如果您希望线条宽度为3像素而不是1,则只需在左侧添加一个像素,在line_elem的每一行中向单元格右侧添加一个像素,其值等于1。如果要改变宽度,只需编辑每一行并更改每行中的不同像素数。如果你想改变度数,你可以尝试使用上面的代码生成不同程度和长度的几行,然后将它们粘合在一起,然后如果你想改变宽度,也可以编辑结果矩阵的行。