【问题标题】:generation of multiscale linear structuring element in MATLAB在 MATLAB 中生成多尺度线性结构元素
【发布时间】:2017-08-19 20:52:21
【问题描述】:

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

请帮帮我 提前谢谢你

【问题讨论】:

    标签: matlab mathematical-morphology


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢 KjMag。我使用了line,因为它可以轻松生成各种长度和度数。不幸的是,我不知道如何在arbitrary 输入的矩阵中定义具有各种长度、宽度和度数的线性 SE。你能帮帮我吗?
    • @KjMag:非常感谢。这很有帮助。我生成了多宽度结构元素,但它不影响图像中边缘检测的结果。所以,我强制只使用 multilength 和 multiangle SE。
    • 没问题,很高兴能帮上忙。如果您使用我的回答中的信息来生成这些自定义 SE,并且您认为我已经回答了您的问题,您可以考虑投票并接受它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 2022-08-11
    • 2017-02-06
    • 2014-09-21
    • 2015-02-02
    • 2013-06-19
    相关资源
    最近更新 更多