C++ OpenCV copyto不接受参数cv::Mat

C++ OpenCV copyto不接受参数cv::Mat,c++,opencv,C++,Opencv,我有以下两行代码,它们创建了一个ROI,然后想要将sub_图像垫复制到遮罩垫上: Rect roi(Point(x - quick_d_2(n2), 0), Size(n2, y + quick_d_2(m2))); sub_image.copyTo(mask(roi)); 它应该根据OpenCV的文档工作,因为它应该接受Mat作为参数,但我在编译过程中遇到以下错误: error: no matching function for call to ‘cv::Mat::copyTo(cv::Ma

我有以下两行代码,它们创建了一个ROI,然后想要将sub_图像垫复制到遮罩垫上:

Rect roi(Point(x - quick_d_2(n2), 0), Size(n2, y + quick_d_2(m2)));
sub_image.copyTo(mask(roi));
它应该根据OpenCV的文档工作,因为它应该接受Mat作为参数,但我在编译过程中遇到以下错误:

error: no matching function for call to ‘cv::Mat::copyTo(cv::Mat)’
note: candidates are:
/usr/include/opencv2/core/core.hpp:1651:10: note: void cv::Mat::copyTo(cv::OutputArray) const
`

为什么我会犯这个错误?如果它不接受Mat作为参数,我想它应该接受,那么如何将其转换为OutputArray呢?我在OpenCV文档中似乎找不到转换方法


主要问题:如何将Mat转换为OutputArray?

可能重复感谢链接,但遗憾的是,此处提供的答案似乎与此处提出的情况/问题相当具体。然而,它确实“解释”了为什么它所接受的论点背后可能缺少文档。尽管如此,Mat仍然应该按照:正如它所写的:您可以假设您可以始终使用Mat、std::vector、Matx、Vec或Scalar来代替InputArray/OutputArray。当一个函数有一个可选的输入或输出数组,而您没有或不想要一个时,pass cv::noArray.似乎与您的问题完全相同,但可能我误解了什么。可能是我,但解决方案似乎并不“干净”。这看起来像是一个单独复制每一行的工作,不过我会尝试一下,谢谢。