无法从'cv::Mat *'转换为'const cv::Mat'

  • 本文关键字:cv Mat const 转换 c++ opencv
  • 更新时间 :
  • 英文 :


我正试图将一个Image从main()传递给另一个函数。然后,我正在尝试将该图像上传到GPU。但我在这样做的时候出错了。

重要信息:我必须注意计算时间。

我的代码:

void gpuProcessing( const Mat& cpuBayerImage)
{
    //Loading image to the GPU
    cv::gpu::GpuMat gpuBayerImage;
    gpuBayerImage.upload(cpuRawBayerImage);
}
int main ()
{
    ---
    Mat cpuBayerImage(size[1], size[0], CV_16UC1, imageData);
    gpuProcessing( &cpuBayerImage);
}

错误:

error C2664: 'gpuProcessing' : cannot convert parameter 1 from 'cv::Mat *' to 'const cv::Mat &'
1>          Reason: cannot convert from 'cv::Mat *' to 'const cv::Mat'
1>          No constructor could take the source type, or constructor overload resolution was ambiguous

我正试图通过引用将图像从main()传递到另一个函数

你们实际上是在用指针传递它。更改:

gpuProcessing( &cpuBayerImage );

至:

gpuProcessing( cpuBayerImage );

我猜cpuBayerImage只是一个cv::Mat。函数gpuProcessing引用了常量cv::Mat,但您却获取了它的地址,并为它提供了一个指向cv::Mat的指针。指针和引用虽然是相似的概念,但不能相互转换。

相关内容

  • 没有找到相关文章

最新更新