C++ 此作用域中未声明faceRecognizer

C++ 此作用域中未声明faceRecognizer,c++,qt,opencv,C++,Qt,Opencv,我正在使用支持人脸识别的opencv的2.4.7版本。但是,我收到以下错误: /home/fereres/recognition-build-desktop- Qt_4_8_1_in_PATH__System__Release/../recognition/program.cpp:58: error: 'FaceRecognizer' was not declared in this scope INCLUDEPATH += "/home/fereres/Desktop/OpenCV/

我正在使用支持人脸识别的opencv的2.4.7版本。但是,我收到以下错误:

 /home/fereres/recognition-build-desktop- Qt_4_8_1_in_PATH__System__Release/../recognition/program.cpp:58: error: 'FaceRecognizer' was  not declared in this scope  
INCLUDEPATH += "/home/fereres/Desktop/OpenCV/opencv-2.4.7/include" \
               "/home/fereres/Desktop/OpenCV/opencv-2.4.7/include/opencv" \
               "/home/fereres/Desktop/OpenCV/opencv-2.4.7/include/opencv2" \
               "/home/fereres/Desktop/OpenCV/opencv-2.4.7/modules/core/include/opencv2/core"
编辑: 自从我刚换了电脑,程序就开始工作了。我按照相同的说明安装了OpenCV。是什么导致了这个错误??我的QT pro文件如下所示:

       QT       += core
       QT       -= gui

      TARGET = identification
      CONFIG   += console/home/fereres/projectCV-build-desktop-        Qt_4_8_1_in_PATH__System__Release
      CONFIG   -= app_bundle

      TEMPLATE = app

      INCLUDEPATH += /home/fereres/Desktop/OpenCV/opencv-2.4.7/include/opencv \
      INCLUDEPATH += /home/fereres/Desktop/OpenCV/opencv-2.4.7/include/opencv2 \
      INCLUDEPATH +=  /home/fereres/Desktop/OpenCV/opencv-2.4.7/modules/core/include/opencv2/core

      LIBS += -L/home/fereres/Desktop/OpenCV/opencv-2.4.7/build/lib \
       -lopencv_core \
       -lopencv_imgproc \
       -lopencv_highgui \
       -lopencv_ml \
       -lopencv_video \
       -lopencv_features2d \
       -lopencv_calib3d \
       -lopencv_objdetect \
       -lopencv_contrib \
       -lopencv_legacy \
       -lopencv_flann

       SOURCES += \
          program.cpp \
          prediction.cpp \
          Detection.cpp

      HEADERS += \
          prediction.h \
          Detection.h 
汇编出来时没有错误。然而,当我运行我的应用程序时,我得到了

 ./identification: error while loading shared libraries: libopencv_core.so.2.4: cannot  open shared object file: No such file or directory
  fereres@ubuntu:~/identification-build-desktop-Qt_4_8_1_in_PATH__System__Release$ 
/usr/local/lib文件夹只包含一个python文件夹,我在那里找不到我的libs

编辑2:
我再次安装了opencv,现在一切正常。我猜安装opencv的最后一步不起作用,所以我的/usr/local文件夹是空的。现在一切都在控制之中。

您最好将
INCLUDEPATH
初始化调整为以下值,否则路径开头引用opencv2的每个
#include
语句都会导致编译错误:

 /home/fereres/recognition-build-desktop- Qt_4_8_1_in_PATH__System__Release/../recognition/program.cpp:58: error: 'FaceRecognizer' was  not declared in this scope  
INCLUDEPATH += "/home/fereres/Desktop/OpenCV/opencv-2.4.7/include" \
               "/home/fereres/Desktop/OpenCV/opencv-2.4.7/include/opencv" \
               "/home/fereres/Desktop/OpenCV/opencv-2.4.7/include/opencv2" \
               "/home/fereres/Desktop/OpenCV/opencv-2.4.7/modules/core/include/opencv2/core"
然后,在
recognition/program.cpp
中,不要忘记包含适当的头文件:

#include <opencv2/contrib/contrib.hpp>
#包括

注意:由于您使用的是pkg config来添加所有OpenCV库,您不需要这样做,但是对于那些单独指定库的人,您需要将OpenCV_contrib添加到
LIBS
,因为您包含了contrib.hpp的确切路径,为什么要把它再次放在包含中?Karl在编辑时,我得到了与以前相同的错误。如果不更改包含初始化,则需要在开始时包含没有opencv2的标题-->
\INCLUDE
识别/program.cpp第58行的代码在哪里?我的第58行:Ptr模型;当你以顺势疗法的剂量提供重要信息时,很难提供帮助。您是否记得使用名称空间cv编写
?是的。正如我在最初的帖子中所说的,我的问题是在换电脑的时候出现的。代码运行良好。确实如此,而且这个问题似乎完全与路径有关。更具体地说,这是一个如何
#包含
标题与如何在
包含路径
中设置路径之间的问题(假设它们确实存在于您的计算机中)。