将cv :: Mat复制到另一个的ROI中

时间:2012-05-07 11:38:07

标签: c++ opencv copy roi

我需要将cv::Mat图片(来源)复制到另一张(目标)cv::Mat图片的投资回报率。

我找到了this reference,但似乎它对我的情况不起作用。 你有什么指针我怎么能用OpenCV C ++接口做到这一点?

3 个答案:

答案 0 :(得分:72)

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

答案 1 :(得分:8)

除了或更正上述答案外,如果您想将较小的开放Mat区域复制到另一个Mat,您应该这样做:

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

答案 2 :(得分:7)

以这种方式为我工作:

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 根据安德烈的回答。