C中的OpenCV2 cv :: Mat :: copyTo错误

在尝试在
linux中的OpenCV2中编译以下代码时,

cv::Mat image1, image2;
cv::Rect rect1, rect2;
...
image1(rect1).copyTo(image2(rect2));

我收到以下错误:

x.cpp: In member function ‘cv::Mat Process(cv::Mat)’:
x.cpp:241: error: no matching function for call to ‘cv::Mat::copyTo(cv::Mat)’
cxcore.hpp:794: note: candidates are: void cv::Mat::copyTo(cv::Mat&) const
cxcore.hpp:796: note: void cv::Mat::copyTo(cv::Mat&, const cv::Mat&) const

注意:此代码在Windows中编译并运行完美.

任何帮助?

最佳答案 从我看到的
here,mat的operator()需要一个Mat类型的参数而不是Mat&amp ;.这似乎是问题所在.

尝试添加Mat类型的临时对象.见下文.

cv::Mat image1, image2;
cv::Rect rect1, rect2;
...
cv::Mat extractedImage2 = image1(rect2);
image1(rect1).copyTo(extractedImage2);

但我必须说我不是openCV专家,所以这只是基于我的知识的答案.

点赞