Подтвердить что ты не робот

Скопируйте cv:: Mat внутри ROI другого

Мне нужно скопировать образ cv::Mat (источник) в ROI другого изображения (Destination) cv::Mat.

Я нашел эту ссылку, но кажется, что это не работает для моего случая. У вас есть указатели, как я могу это сделать с помощью интерфейса OpenCV С++?

4b9b3361

Ответ 1

OpenCV 2.4:

src.copyTo(dst(Rect(left, top, src.cols, src.rows)));

OpenCV 2.x:

Mat dst_roi = dst(Rect(left, top, src.cols, src.rows));
src.copyTo(dst_roi);

Ответ 2

Работа для меня таким образом:

Mat imgPanel(100, 250, CV_8UC1, Scalar(0));
Mat imgPanelRoi(imgPanel, Rect(0, 0, imgSrc.cols, imgSrc.rows));
imgSrc.copyTo(imgPanelRoi);

imshow("imgPanel", imgPanel);
waitKey();

Я использую Opencv 2.4.9 На основании ответа Андрея.

Ответ 3

В дополнение или исправление выше ответов, если вы хотите скопировать меньшую область открытого Mat в другую Mat, вы должны сделать:

src(Rect(left,top,width, height)).copyTo(dst);