【问题标题】:OpenCV GpuMat usageOpenCV GpuMat 使用
【发布时间】:2012-02-16 20:13:33
【问题描述】:

我正在尝试使用 OpenCV GpuMat 但我收到断言错误,我的代码如下

#include "opencv2/opencv.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/gpu/gpu.hpp"

// ...

using namespace cv;
using namespace cv::gpu;

int main()
{
    string baboon = "baboon.jpg";
    try
    {
        DeviceInfo info = getDevice();
        cout << info.name() << endl;

        GpuMat src;

        src = cv::imread(baboon, 1);
    }
    catch (const cv::Exception* ex)
    {
        cout << "Error: " << ex->what() << endl;
    }
}

输出是:

GeForce GTX 550 Ti
OpenCV Error: Assertion failed (!m.empty()) in unknown function, file ($PATH_TO_OPENCV)\opencv\modules\gpu\src\gpumat.cpp, line 411

关于如何解决这个问题的任何想法?

【问题讨论】:

    标签: opencv cuda gpu


    【解决方案1】:

    解决办法是:

    Mat src;
    
    src = cv::imread("...");
    
    GpuMat dst;
    
    dst.upload(src);
    

    【讨论】:

    • 不应该只是dst.upload(src); ?
    【解决方案2】:

    我相信它会在 GpuMat 构造函数中抛出断言,因为您对 imread 的调用返回 null,因此您的 Gpu 矩阵为空/未定义。

    这意味着您的图像可能由于缺少文件、权限不正确或格式不受支持或无效而无法读取。

    确认 baboon.jpg 存在于您运行程序的同一目录中,同时确认您的图像文件具有正确的权限并且没有损坏。

    【讨论】:

      猜你喜欢
      • 2013-07-14
      • 2018-04-12
      • 2019-11-06
      • 1970-01-01
      • 2021-05-08
      • 2019-03-18
      • 2013-11-12
      • 1970-01-01
      • 2011-10-21
      相关资源
      最近更新 更多