OpenCV如何在二值图像中找到连接组件的列表

15

我正在使用OpenCV来开发一款C++应用程序。我有一个8位的二进制图像,上面有一些物体。这些物体的颜色都是255,而背景中的所有内容都是0。每个物体内部没有空白(黑色)像素。换句话说,每个物体都是完全白色的。这些物体之间没有连接。下面是我想从中提取的内容:

我想要提取某种对象列表,其中我能够大致知道列表中每个对象的位置。这可以使用cvConnectedComponents()或其他任何方法来实现。我需要某种指示,告诉我每个对象在图像中的位置。这可以采用每个对象的边界矩形、中位数或基于某些计算的中心点等形式,或者是任何能够给我提供对象在图像中位置测量的方法。有什么OpenCV函数推荐吗?


3
请参考这个例子:http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/find_contours/find_contours.html。 - LovaBill
2
可能是OpenCV中连通组件的重复问题 - kiranpradeep
2个回答

33

11

您需要对cv::findCountours返回的轮廓进行cv::floodFill。请参见此示例了解findContours,以及此示例了解floodFill。


2
我认为现在应该更改这个答案,因为3.0版本[终于]发布了。 - Jason Newton
@JasonNewton 变成了什么? - Gulzar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接