Ответ 1
Из документация:
С++: void Mat:: convertTo (OutputArray m, int rtype, double alpha = 1, double beta = 0) const
Параметры:rtype - желаемый тип выходной матрицы или, точнее, глубина, так как число каналы те же, что и вход; если rtype отрицательный, выходная матрица будет иметь тот же тип, что и вход.
Вы видите, что количество каналов не изменяется на convertTo
, это означает, что, скорее всего, вы получаете 3 канала (r, g и b). Однако для findContours
требуется монохромное изображение.
Вам нужно преобразовать изображение в черно-белое:
cv::Mat bwImage;
cv::cvtColor(image, bwImage, CV_RGB2GRAY);
vector< vector<cv::Point> > contours;
cv::findContours(bwImage, contours, CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE);