Expected Ptr<cv::UMat> for argument 'array'
时间: 2024-02-05 12:13:37 浏览: 141
C++ 中 std::optional 与 std::expected 的深度辨析
这个错误通常发生在使用OpenCV的函数时,传递给函数的参数类型不正确。具体来说,这个错误通常发生在使用cv::Mat作为参数时,但实际上传递的是cv::UMat类型的数据。
有两种方法可以解决这个问题:
1. 将传递给函数的参数类型改为cv::Mat类型,而不是cv::UMat类型。可以使用cv::Mat::getUMat()方法将cv::Mat类型的数据转换为cv::UMat类型的数据。例如:
```
cv::Mat image;
cv::UMat umat_image = image.getUMat(cv::ACCESS_READ);
cv::imshow("image", umat_image);
```
2. 如果需要使用cv::UMat类型的数据,可以在函数调用之前将cv::Mat类型的数据转换为cv::UMat类型的数据。例如:
```
cv::Mat image;
cv::UMat umat_image;
image.copyTo(umat_image);
cv::imshow("image", umat_image);
```
这两种方法都可以解决这个问题,具体使用哪一种方法取决于你的需求。
阅读全文