我正在将OpenCV用于C ++应用程序。我有一个8位二进制图像,有一些对象。对象全部为255,而背景中的所有内容都为0.每个对象内部没有空白(黑色)像素。换句话说,每个对象都是白色的。对象不相互连接。以下是我想从中提取的内容:
我想提取某种对象列表,我从中可以了解该列表中每个对象的位置。这可能是使用cvConnectedComponents()或其他任何东西。我需要指出每个对象在图像中的位置。这可以是基于某些计算的每个对象或中间或中心的边界矩形的形式,或者是给出我对图像中的对象位置的度量的任何东西。什么指向OpenCV的功能?
答案 0 :(得分:29)
从3.0版开始,OpenCV具有connectedComponents
功能。
答案 1 :(得分:11)
你需要cv :: flood填充cv :: findCountours返回的轮廓。有关findContours的信息,请参阅this example,有关floodFill的信息,请参见this one