OpenCV如何在二进制图像中查找连接组件的列表

OpenCV how to find a list of connected components in a binary image

本文关键字:连接 查找 组件 列表 图像 二进制 OpenCV      更新时间:2023-10-16

我将OpenCV用于C++应用程序。我有一个有一些对象的8位二进制图像。对象的颜色均为255,而背景中的所有对象的颜色都为0。每个对象内部都没有空白(黑色)像素。换句话说,每个对象都是完全白色的。对象之间没有连接。以下是我想从中提取的内容:

我想提取一些对象列表,从中我对列表中每个对象的位置有一些概念。这可以使用cvConnectedComponents()或其他任何东西。我需要一些指示每个物体在图像中的位置。这可以是每个对象的边界矩形形式,也可以是基于某种计算或任何能让我测量图像中对象位置的东西的中值或中心。有指向OpenCV函数的指针吗?

从3.0版本开始,OpenCV具有connectedComponents功能。

您需要cv::floodFill由cv::findCountours返回的轮廓。有关findContours,请参阅此示例,有关floodFill ,请参阅本示例