OpenCV 2.4.13 error: ‘Moments’ in namespace ‘cv’ does not name a type

OpenCV 2.4.13 error: ‘Moments’ in namespace ‘cv’ does not name a type

我是使用 OpenCV 的初学者,当我尝试编译我的 main.cpp 文件时遇到此错误(以及许多其他错误):

我不知道我做错了什么。我下载了 OpenCV 2.4.13 zip 文件,将其解压到我的项目文件夹中(见图片)并将 cv.h 文件包含到我的 main.cpp 中。我需要做什么?是什么导致了这个问题?

我正在使用 Ubuntu 14.04 LTS,Codeblocks 13.12

根据错误消息,您将本地 OpenCV 实例 headers (/home/jjepoh/Document/codeblocks_workspace/opencv/opencv-2.4.13/include/opencv) 与 system-wide 实例 (/usr/local/include/opencv2/) 混合使用。

system-wide 实例可能是一个不同的版本,并且因为本地实例很可能使用“#include <opencv/xxx.h>”来包含从属 headers,system-wide 位置优先选择。所以最后你得到了两个不同版本的 OpenCV 的混合,这显然是行不通的。

基本上有两种(或三种)修复的可能性:

  1. 安装新版本system-wide。
  2. 删除不同的 system-wide 版本(可能是 opencv 开发包)。
  3. 不使用新版本,使用系统安装的system-wide版本