【发布时间】:2013-09-01 05:52:24
【问题描述】:
我正在尝试编写一种算法来使用图像上的连接组件标记来检测 blob。如果它们以对角线连接,我很难合并不同的标签。为水平和垂直连接的像素做这件事似乎很容易。但是我想不出一种方法来检测对角线连接的像素。因为如果它发生变化,那么就需要将图像重新标记为每个变化像素的变化。我糊涂了 。你能解释一下如何处理这个问题。我所说的可能完全错误(但我只在水平和垂直连接的组件上取得了合理的结果),但这不是正确的方法。请就如何准确处理连接组件标签提出建议。我只使用图像尺寸数组进行比较和标记。
【问题讨论】:
-
“但是我想不出一种方法来检测对角连接的像素。因为如果它发生变化,那么就需要将图像重新标记为每个变化像素的变化。” --你这是什么意思?你想在你的blob中也使用对角线像素吗?
-
两个想法:(1)请发布您的代码的一部分; (2) 如果两个像素仅在对角线上“连接”,那么您正在实现一个 8 连接算法,这可能不是您想要的。您想将棋盘模式检测为单个斑点吗?
-
@Rethunk:嗨 Rethunk,感谢您的评论。我能够通过使用 union-find 结构注意等价性并在第二遍中更改它们的值来解决该问题。现在代码工作得很好。我使用了 4 连接。
-
@Aravind:我的意思是当您通过将感兴趣的属性与其左侧和顶部像素进行比较来标记像素时。当left和top的利益属性相等且标签不相等时。您将较低的标签分配给当前像素,然后我们不能忽略 left 和 top 具有相同的值但不同的标签。我们需要再次将它们标记为两者中的最低值。所以我能够注意到等效性并在下一次通过时更改它们。希望这能回答你的问题。谢谢。
-
@chaithu 我可以看到那个代码吗?我需要连接两个汽车前灯。
标签: algorithm image-processing computer-vision blob