[英]cannot convert from 'cv::Scalar_<double>' to 'cv::Mat'
[英]cannot convert from 'cv::Mat *' to 'const cv::Mat'
我試圖將圖像從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
引用了const cv::Mat
,但是取而代之的是獲取它的地址並為其提供一個指向cv::Mat
的指針。 盡管指針和引用的概念相似,但它們彼此不可轉換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.