Ответ 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);
Мне нужно скопировать образ cv::Mat
(источник) в ROI другого изображения (Destination) cv::Mat
.
Я нашел эту ссылку, но кажется, что это не работает для моего случая. У вас есть указатели, как я могу это сделать с помощью интерфейса OpenCV С++?
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);
Работа для меня таким образом:
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 На основании ответа Андрея.
В дополнение или исправление выше ответов, если вы хотите скопировать меньшую область открытого Mat
в другую Mat
, вы должны сделать:
src(Rect(left,top,width, height)).copyTo(dst);