OpenCV, как найти список подключенных компонентов в двоичном изображении

Я использую OpenCV для приложения на С++. У меня есть 8-битное двоичное изображение с несколькими объектами. Объекты все цветные 255, тогда как все в фоновом режиме окрашено в 0. Каждый объект не имеет свободных (черных) пикселей внутри него. Другими словами, каждый объект полностью белый. Объекты НЕ подключены друг к другу. Вот что я хочу извлечь из этого:

Я хочу извлечь какой-то список объектов, из которых у меня есть некоторое представление о местонахождении каждого объекта в этом списке. Это может быть использование cvConnectedComponents() или что-то еще. Мне нужно указать, где каждый объект находится на изображении. Это может быть в виде ограничивающего прямоугольника для каждого объекта или медианы или центра на основе некоторого вычисления или чего-либо, что дает мне меру расположения объектов на изображении. Любые указатели на то, что OpenCV выполняет для просмотра?

Ответ 1

Вам нужно cv:: floodFill контуры, возвращаемые cv:: findCountours. См. этот пример для findContours и этот для floodFill

Ответ 2

Начиная с версии 3.0, OpenCV имеет connectedComponents функцию.