Я хочу пометить объекты в двоичном изображении, используя функцию поиска контура и функции drawcontour.
Я также хочу знать, какие данные хранятся в выходном массиве функции findcontour.
Кроме того, есть ли другие подходящие методы, чтобы сделать выше?
На комментарий @ berak уже ответили. Я просто добавлю к тому, как выглядит вывод. Рассмотрим изображение размером 35×62, увеличенная в 5 раз версия ниже. На изображении 6 капель или объектов, каждый из которых имеет соответствующий контур.
Выше изображение было сохранено в объекте Mat im
, findContour
был применен как
cv::findContours(im.clone(), contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);
Вывод findContour является vector<vector<Point>>
объект contours
который выглядит как:
Таким образом, он имеет 6 элементов, каждый из которых соответствует одному контуру. Давайте принимать contours[0]
например. Это выглядит как:
contours[0]
имеет пять элементов, каждый из которых хранит координаты пикселей, которые образуют контур.