【问题标题】:Morphological closing for skewed lines斜线的形态闭合
【发布时间】:2020-07-15 17:18:20
【问题描述】:

我有一些斜线,我想执行形态关闭,我不确定在这种情况下我应该如何定义关闭内核。问题是线条有时可能是倾斜的,有时是完全垂直的。在这种情况下,我将如何定义内核?

作为参考,我正在处理的图像看起来像这样 - 我想加入右边的行 -

【问题讨论】:

    标签: python opencv image-processing


    【解决方案1】:

    这些线条很整齐,但很细,因此所需的闭合应该非常准确。为此,您需要测量倾斜角。 (然后你可以去歪斜并应用一个纯粹的垂直结构元素。)

    我宁愿以不同的方式解决这个问题,而不是使用形态学,这是一种盲目的全局操作,会损坏您的图像。

    • 检测线段(您可能会想到 Hough,但线跟踪和 Douglas-Peucker 矢量化似乎更好)。

    • (可选)线段上的线拟合,以获得最大精度。

    • 最后,加入具有附近端点和相似方向的段。

    【讨论】:

    • 我目前正在使用 LSD Detector 检测线段,上图 ^ 是 lsd 的输出。所以我有每个线段的端点。你能告诉我更多关于线拟合过程吗?
    • @PyWalker2797:你应该提前说出来!只需按原样使用 LSD 数据。您甚至可以将这些片段分组成对,以获得更好的鲁棒性。请忘记任何低级处理。
    • 面对对是什么意思?我最初的方法是通过识别彼此非常接近的线段来缩小差距,例如 (x1, y1, x2, y2) 是一个线段,我检查y2 是否靠近下一个线段y1 这将验证它们是否对齐,但这似乎是 O(n^2) 因为我必须对所有线段进行两次迭代。
    • 蛮力是 O(N²)。您可以通过计算几何技术提高到 O(N Log N)。但是当 N=12 时值得付出努力吗?
    • 哪种方法最有效,我应该计算两条线之间的角度吗?对于每条线,我计算它与另一条线的角度,如果角度相同,我加入它们,否则我继续下一条?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 2011-07-21
    • 2020-01-29
    • 2015-05-03
    • 2020-05-02
    • 2019-09-16
    • 2021-07-08
    相关资源
    最近更新 更多