gpt4 book ai didi

image - 二值化图像中的单独交叉段

转载 作者:行者123 更新时间:2023-12-02 16:08:51 24 4
gpt4 key购买 nike

我有一些图像处理,允许我提取包含厚段的二进制图像,我面临这些段可能相互交叉的问题。因此我需要找到一种有效的方法来分离它们,我必须在 C++ 中实现它,所以任何基于 OpenCV 的东西都会有所帮助。
这是一个示例输入图像,两个“ Blob ”都需要分成 3 个不同的部分。

input image

到目前为止,我已经尝试了 2 个想法,但我都坚持使用它们,这就是为什么我在这里问这个看似简单的问题是否有任何“最先进的”解决方案。

  • 我的第一个想法是计算 Blob 的骨架,找到交点。这部分很容易。然后我计划从一个终点开始,遍历该段直到我到达一个交叉点并“穿过交叉点”。如果您查看底部的 Blob ,即使预期为“T”形,骨架也会产生奇怪的“Y”形,从而无法决定如何穿过交叉点。
  • 第二个想法是计算距离变换,然后是梯度方向,然后我仍然需要一种方法来合并具有相似方向的像素以及一种处理端点/交叉点的方法。

  • image transform
    original and transform overlapped

    最佳答案

    使用骨架是个好主意,因为这将使处理独立于笔划宽度。在交汇处附近,骨架受到扰动,因此方向会发生局部变化。

    您可以考虑一个骨架并在连接点处拆分(连接到两条以上的独立曲线)。您将构建一个图形,其中边是连接点之间的弧。确保保持连通性。

    然后,您可以通过找到距离交汇处一到两个厚度的点来估计弧的方向。您将对边缘进行配对,以便(绿色)点形成最佳对齐方式。您可以以贪婪的方式执行此操作(最适合优先),直到您用尽所有可能的匹配项或直到认为角度太大。

    enter image description here

    enter image description here

    具有广角的交叉点具有挑战性,因为它们将形成具有两个远距离交叉点的骨架。将一条曲线与另一条曲线进行匹配时,您可能会考虑与远处的曲线进行匹配,前提是两者之间有一条路径,以便它适合与笔划一样大的条纹。

    关于image - 二值化图像中的单独交叉段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59505748/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com