我正试图将一个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
的指针。指针和引用虽然是相似的概念,但不能相互转换。