web-dev-qa-db-ja.com

cv :: Matを別のROI内にコピーします

cv::Matイメージ(ソース)を別の(宛先)cv::MatイメージのROIにコピーする必要があります。

このリファレンス を見つけましたが、私の場合はうまくいかないようです。 OpenCV C++インターフェイスを使用してこれをどのように行うことができますか?

50
theosem

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);
75
Andrey Kamaev

上記の答えに加えて、または修正して、開いているMatの小さな領域を別のMatにコピーする場合は、次のようにする必要があります。

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

このように私のために働いた:

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();

Andreyの答えに基づいてOpencv 2.4.9を使用しています。

7
Renato Aloi