簡體   English   中英

無法從'cv :: Mat *'轉換為'const 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM