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

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

如有任何帮助,我们将不胜感激。

最佳答案

Mat中有具体方法测试数据是否成功加载:

// returns true if matrix data is NULL

bool empty() const;

所以在您的代码中,将 if 语句更改为:

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

关于C++ opencv编译错误-Windows7 64位使用Eclipse CDT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8271596/

相关文章:

c++ - 结构中的字符

windows - 创建特定于 Python 的设置

c - 已安装检查 c 但未找到 "check.h"

Android:Eclipse 不会运行 Android 项目

java - 我是否需要单独的 eclipse 项目来使用 PC 代理为 Android 开发

c++ - 仅使用 "last"参数 boost 橙色

c++ - 在没有 C 的情况下使用 C++

c++ 模板参数匹配 std::function 与函数指针

ASP.NET "access is denied"访问 UNC 路径时出错

android - FTDI芯片支持Android设备