4

我需要在 C++ 应用程序中的图像上使用连接组件标记算法。我可以自己实现它,但我试图使用 Boost 的union-find/disjoint sets实现,因为它在union-find wiki 文章中提到过。

我不知道如何创建 disjoint_sets 对象,以便它可以处理我拥有的图像数据(无符号短裤)。我错过了什么?Boost 文档中的示例对我来说没有任何意义。当我有图像时,我是否需要这些示例中所有额外的 Graph mumbo-jumbo?或者,是否已经有 OpenCV 连接组件标签实现。目前我们正在使用 OpenCV 1.1pre1 和 Boost 1.37。

4

4 回答 4

3

令人惊讶的是,OpenCV 中没有 CCL。但是,参考手册中描述了一种解决方法。请参阅cvDrawContours 的示例。当我尝试使用它时,我在图像的第一行和最后一行和最后一列有一些奇怪的行为,但我可能做错了什么。

另一种方法是使用cvBlobs库。

于 2010-01-29T09:39:34.677 回答
1

我们最终使用 Wikipedia 和其他地方的描述为 CCL 和 Union-Find 编写了算法。它似乎比仅仅为此目的向我们的应用程序添加另一个库更容易和更快。

于 2010-03-19T18:41:06.523 回答
1

另一种可能是使用 Ali Rahimi 提供的源代码,你可以看看这个

于 2012-07-06T10:32:38.817 回答
0

我能够使用boost 库的disjoint_sets来标记连接的组件。但是为了测试,我试图创建一个像素强度与标签相同的图像。这导致了我还无法处理的问题。看看线程

于 2011-03-13T15:40:05.587 回答