Добавить строку в матрицу в OpenCV

Это очень простой вопрос, но я не смог найти ответ в Google или в документации OpenCV. Как вставить строку с вектором или номером по умолчанию в нижней части cv::Mat? Я пробовал:

std::vector<double> v = {0, 0, 1};
m.push_back(v);

который компилируется, но всегда вызывает ошибку утверждения. Каков правильный способ сделать это?

Ответы

Ответ 1

Добавляемый элемент должен быть Mat с тем же количеством столбцов, что и матрица контейнера:

cv::Mat m = cv::Mat::ones(4, 3, CV_64F);    // 3 cols, 4 rows
cv::Mat row = cv::Mat::ones(1, 3, CV_64F);  // 3 cols, 1 row
m.push_back(row);                           // 3 cols, 5 rows