【发布时间】:2012-04-13 08:42:16
【问题描述】:
我想做一件非常简单的事情:将图像中的区域复制到新图像中的新区域中。在 OpenCV 2.3 备忘单中,他们提出了以下解决方案:
"示例 3. 将图像 ROI 复制到另一个图像并进行转换"
Rect r(1, 1, 10, 20);
Mat dstroi = dst(Rect(0,10,r.width,r.height));
src(r).convertTo(dstroi, dstroi.type(), 1, 0);
我的代码如下:
Mat frameO, frameS;
original >> frameO;
stabilized >> frameS;
Mat output(frameO.rows+40, frameO.cols*2+60, CV_32FC3);
output.setTo(0);
Rect r(0,0, frameO.cols, frameO.rows);
Mat destROI = output(Rect(20,20, frameO.cols, frameO.rows));
frameO(r).copyTo(destROI);
我只想将图像frameO 复制到Rect(20,20, frameO.cols, frameO.rows) 位置的输出中。
谁能告诉我为什么这不起作用?
【问题讨论】:
-
您提供的代码片段不完整。您能否发布整个代码,包括您实际执行复制的操作。
-
对不起,我错过了最后一行,我刚刚编辑了它。
-
关于您的评论 karlphilip,实际上没有回答那里的问题。当做 frameO(r).copyTo(destROI);图像很好地复制到 destROI。如果我显示它,它将包含新图像,但它不会影响我希望图像结束的输出。
标签: c++ opencv computer-vision