Использование OpenCV GpuMat - PullRequest
       6

Использование OpenCV GpuMat

1 голос
/ 17 февраля 2012

Я пытаюсь использовать 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

Любые идеи покак решить эту проблему?

Ответы [ 2 ]

6 голосов
/ 21 марта 2012

Решение:

Mat src;

src = cv::imread("...");

GpuMat dst;

dst.upload(src);
4 голосов
/ 17 февраля 2012

Я полагаю, что он выбрасывает утверждение в конструкторе GpuMat, потому что ваш вызов imread возвращает ноль, и, следовательно, ваша матрица Gpu пуста / не определена.

Это означает, что ваше изображение не может быть прочитано, вероятно, из-за отсутствующего файла, неправильных разрешений или неподдерживаемого или неверного формата.

Убедитесь, что baboon.jpg существует в том же каталоге, где вы запускаете вашу программу, а также убедитесь, что ваш файл изображения имеет правильные разрешения и не поврежден.

...