Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;linux中的OpenCV2 cv::Mat::copyTo错误_C++_Linux_Opencv - Fatal编程技术网

C++ C++;linux中的OpenCV2 cv::Mat::copyTo错误

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:

在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::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)”;