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

时间:2010-07-31 12:37:33

标签: c++ linux opencv

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

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

我收到以下错误:

  

x.cpp:在成员函数'cv :: Mat Process(cv :: Mat)'中:
  x.cpp:241:错误:没有用于调用'cv :: Mat :: copyTo(cv :: Mat)'的匹配函数   cxcore.hpp:794:注意:候选人是:void cv :: Mat :: copyTo(cv :: Mat&)const
  cxcore.hpp:796:注意:void cv :: Mat :: copyTo(cv :: Mat&,const cv :: Mat&)const

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

任何帮助?

1 个答案:

答案 0 :(得分:2)

从我看到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专家,所以这只是基于我的c ++知识的答案。