Ошибка компиляции C ++ opencv - Windows7 64-битная с использованием Eclipse CDT - PullRequest
2 голосов
/ 25 ноября 2011

Попытка скомпилировать этот пример проекта для ознакомления с OpenCV:

#include <cv.h>
#include <highgui.h>

using namespace cv;

int main(int argc, char** argv)
{
    Mat image = imread(argv[1], 1);
    if (argc != 2 || !image.data) {
         printf("No image data \n");
         return -1;
    }

    namedWindow("Display Image", CV_WINDOW_AUTOSIZE);
    imshow("Display Image", image);

    waitKey(0);

    return 0;
} 

Я получаю следующие ошибки компиляции:

Description Resource    Path    Location    Type
Field 'data' could not be resolved  imageloader.cpp ‪/Session4‬ line 8  Semantic Error
Invalid arguments '
Candidates are:
void imshow(const std::basic_string<char,std::char_traits<char>,std::allocator<char>> &, const ? &)
void imshow(const ? &, ?)
'   imageloader.cpp ‪/Session4‬ line 14 Semantic Error

Почему я не могу получить доступ к полямвнутри объекта Mat?Не только поле данных, но и все поля.Я создаю библиотеку opencv с использованием c-make и MinGW +. Я включил соответствующие файлы заголовков и путь к lib в свойствах проекта.

Любая помощь будет наиболее ценной.

1 Ответ

0 голосов
/ 25 ноября 2011

В Mat есть специальный метод, который проверяет, были ли данные успешно загружены:

// возвращает true, если матричные данные равны NULL

bool empty () const;

Итак, в вашем коде измените оператор if на:

if (argc != 2 || image.empty()) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...