C ++ opencv编译错误 - 使用Eclipse CDT的Windows7 64位

时间:2011-11-25 16:05:47

标签: c++ windows eclipse opencv

尝试编译此示例项目以熟悉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对象中的字段?不仅是数据字段,还包括所有字段。我使用c-make构建了opencv库,MinGW + I在项目属性中包含了相关的头文件和lib路径。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

Mat中有一个特定的方法可以测试数据是否已成功加载:

  

//如果矩阵数据为NULL,则返回true

     

bool empty()const;

因此,在您的代码中,将 if 语句更改为:

if (argc != 2 || image.empty())