2011-11-25 61 views
2

试图以编译该示例项目的64位熟悉的OpenCV:C++ OpenCV的编译错误 - Windows7的使用Eclipse CDT

#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和MinGW +构建opencv库,并在项目属性中包含相关的头文件和lib路径。

任何帮助将不胜感激。

回答

0

有一个在Mat,测试的数据是否被成功地加载的具体方法:

//如果矩阵数据是NULL

布尔空()const的返回true;

因此,在你的代码中,如果声明更改为:

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

感谢您的迅速答复,但该项目仍然没有编制。现在的错误是: 方法'空'无法解决。 好像我不能访问Mat对象中的任何字段/方法,但如果程序开头的其他代码行编译得很好,怎么可能呢?再次感谢.. –

+0

你正在使用什么opencv版本,你包括哪些路径?有关更详细的[安装过程,请查看我们的VStudio指南。](http://stackoverflow.com/questions/7011238/opencv-2-3-c-visual-studio-2010/7014918#7014918)。我敢打赌,你错过了一些包括。 – karlphillip

+0

opencv version 2.3.1,我添加了在make和make-install操作之后生成的include和lib文件夹,我在eclipse中的项目属性的“Libraries”部分中添加了所有的库。当我打开项目层次结构时,我可以看到所有的opencv包含文件,并可以访问它们。当opencvbuild是由cmake创建的文件夹时,路径为opencvbuild \ install \ include和opencvbuild \ install \ lib。再次感谢.. –