【问题标题】:Connected Component Labeling连接组件标签
【发布时间】:2017-05-07 21:02:39
【问题描述】:

在 OpenCV 3.0 中有一个名为 connectedComponent 的函数。

我知道它将二进制图像作为输入并返回标签和连接组件的数量,但是内部使用什么算法?

【问题讨论】:

  • @Miki 在 opencv 3.0 中有一个名为 connectedComponent 的函数,我想知道它是如何制作的以及如何工作的。我知道它接受返回的输入二进制图像标签图像和连通性并返回连接组件的数量,但是因为我必须编写报告,所以我需要知道它是如何工作的。谢谢
  • 您能否尝试扩展您的问题。我对“如果有人实现了库提供的 connectedComponent 函数”感到特别困惑。如果你能在其中发现一个明显的错字,那就太棒了!如果没有,您可以尝试重复一遍吗?不管怎样,edit你的问题来解决问题。
  • 对。我在你发表评论时发表了我的评论。正如我所说:请edit 包含该信息的问题。
  • @MartinBonner 你明白我的评论吗?
  • 评论好多了。提示:用外语交流时,宁愿多说也不要少说,然后重复自己——这让其他人有更多机会猜出你的意思。 (一边用德语与同事交流一边学习。)

标签: c++ opencv image-processing computer-vision connected-components


【解决方案1】:

OpenCV 是开源的。你可以看看documentationsource code

您可以选择2 algorithms执行connected component lablelling

OpenCV 中的默认值 >= 3.2 (CCL_DEFAULT) 使用 Wu 的 4 连接算法和 Grana 的 8 连接算法。

在 OpenCV 3.0.0 中,您将 Wu 算法用于 4 和 8 连接,而在 OpenCV >= 3.2 中,您可以根据字段 connectivity 和 @ 选择 3 个选项之一987654332@:

       \  connectivity   4    |   8
        \                     |
type     \                    |
                              |
CCL_DEFAULT              Wu   |  Grana
CCL_WU                   Wu   |  Wu
CCL_GRANA                Wu   |  Grana

【讨论】:

  • 感谢您的回复。您必须提供有关此算法的可用文档吗?我尝试在互联网上搜索,但一无所获
  • 您需要更好地搜索。我用论文链接编辑了答案
  • 另一个愚蠢的问题:有两种策略我怎么知道使用了什么?很抱歉给您带来麻烦,但我是该领域的新手
  • 在 OpenCV 3.0.0 中,您使用 Wu 的算法进行 4 和 8 连接。在 OpenCV >= 3.2 中,您可以选择与字段 connectivity and ccltype 一起使用的字段@
  • 因为我使用了默认选项并且作为connectivity 4,使用的算法是正确的SAUF?再次抱歉
【解决方案2】:

您可以在许多来源中阅读有关连接组件标记算法的信息

OpenCV 实现是 here 并包含以下线索:

 //Based on "Two Strategies to Speed up Connected Components Algorithms", 
 //the SAUF (Scan array union find) variant
 //using decision trees
 //Kesheng Wu, et al

Article

【讨论】:

  • 感谢您的回复。您必须提供有关此算法的可用文档吗?我尝试在互联网上搜索,但一无所获
  • 添加了文章的链接。这很容易谷歌搜索
  • 另一个愚蠢的问题:有两种策略我怎么知道使用了什么?很抱歉给您带来麻烦,但我是该领域的新手
  • 我不知道。源文件长 80 kB :)
猜你喜欢
  • 2013-01-06
  • 2018-03-08
  • 2011-01-10
  • 2014-05-19
  • 2011-07-31
  • 2013-12-02
  • 2014-04-13
  • 2017-11-12
相关资源
最近更新 更多