Я кодирую в C++ и пытаюсь изменить размер изображения 2 до тех же размеров, что и изображение 1, однако я не хочу растягивать изображение. Я пытаюсь скопировать изображение2 в заполненную матрицу (в точке 0,0). Получаем ошибку:Pad изображение с нулями
OpenCV Error: Assertion failed
(0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows)
inMat
, file C:\opencv\opencv\modules\core\src\matrix.cpp, line 323
Код ниже. Заранее спасибо
Mat padded;
padded.setTo(cv::Scalar::all(0));
padded.create(image1.rows,image1.cols, image2.type());
image2.copyTo(padded(Rect(0, 0, image2.rows, image2.cols)));
Устранение ошибки означает, что любое из указанных условий не получилось. Просто проверьте все параметры, указанные в условии assert, и вы поймете, почему это происходит. –
image2.copyTo (padded (Rect (0, 0, image2.rows, image2.cols))); // вы меняли местами строки и столбцы – berak