Copy an cv::Mat inside a ROI of another one

夙愿已清 提交于 2019-11-26 08:08:10

问题


I need to copy a cv::Mat image (source) to an ROI of another (Destination) cv::Mat image.

I found this reference, but it seems that it does not work for my case. Do you have any pointers how could I do this using the OpenCV C++ interface?


回答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:


In addition or correction to above answers, if you want to copy a smaller region of open Mat to another Mat, you should do:

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



回答3:


Did work for me this way:

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

I am using Opencv 2.4.9 Based on Andrey's answer.



来源:https://stackoverflow.com/questions/10481411/copy-an-cvmat-inside-a-roi-of-another-one

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!