尝试编译此示例项目以熟悉 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/