C++ C++;linux中的OpenCV2 cv::Mat::copyTo错误
在linux中尝试在OpenCV2中编译以下代码时C++ C++;linux中的OpenCV2 cv::Mat::copyTo错误,c++,linux,opencv,C++,Linux,Opencv,在linux中尝试在OpenCV2中编译以下代码时 cv::Mat image1, image2; cv::Rect rect1, rect2; ... image1(rect1).copyTo(image2(rect2)); 我得到以下错误: x、 cpp:在成员函数“cv::Mat进程(cv::Mat)”中: x、 cpp:241:错误:对“cv::Mat::copyTo(cv::Mat)”的调用没有匹配的函数 hpp:794:注:候选项为:void cv::Mat::copyTo(cv:
cv::Mat image1, image2;
cv::Rect rect1, rect2;
...
image1(rect1).copyTo(image2(rect2));
我得到以下错误:
x、 cpp:在成员函数“cv::Mat进程(cv::Mat)”中:x、 cpp:241:错误:对“cv::Mat::copyTo(cv::Mat)”的调用没有匹配的函数
hpp:794:注:候选项为:void cv::Mat::copyTo(cv::Mat&)const
hpp:796:注意:void cv::Mat::copyTo(cv::Mat&,const cv::Mat&)const 注意:这段代码在windows中编译和运行完美无瑕 有什么帮助吗?据我所知,Mat的运算符()需要Mat类型的参数,而不是Mat&。这似乎是这里的问题 尝试添加Mat类型的临时对象。见下文
cv::Mat image1, image2;
cv::Rect rect1, rect2;
...
cv::Mat extractedImage2 = image1(rect2);
image1(rect1).copyTo(extractedImage2);
<>但是我必须说我不是OpenCV专家,所以这只是基于我的C++知识的一个回答。谢谢,我没有很好的描述,但是你的代码编译得很好:)CV::Mat ExpDeIdIGE2= IMAGE1(SULT2);“改为CV::Mat ExpDeIdIGIG2= IMAGE2(SULT2)”;