我需要在C ++应用程序中的图像上使用connected component labeling算法。我可以自己实现,但我试图使用Boost的union-find/disjoint sets实现,因为它在union-find wiki文章中提到过。
我无法弄清楚如何创建disjoint_sets对象,以便它可以处理我拥有的图像数据(unsigned shorts)。我错过了什么? Boost文档中的示例对我没有任何意义。当我有图像时,我是否需要在这些示例中使用所有额外的图形mumbo-jumbo?或者,是否已经有一个OpenCV连接组件标签实现。目前我们正在使用OpenCV 1.1pre1和Boost 1.37。
答案 0 :(得分:3)
令人惊讶的是,OpenCV中没有CCL。但是,参考手册中描述了一种解决方法。见the example for cvDrawContours。当我尝试使用它时,我在图像的第一行和最后一行和列上有一些奇怪的行为,但我可能做错了。
另一种方法是使用cvBlobs库。
答案 1 :(得分:1)
我们最终使用维基百科和其他地方的描述编写了CCL和Union的算法。为此目的,为我们的应用程序添加另一个库似乎更容易,更快。
答案 2 :(得分:1)
另一种可能性是使用Ali Rahimi提供的源代码,您可以查看this。
答案 3 :(得分:0)