我使用了2.4.7版本的opencv,它支持人脸识别。但是,我收到以下错误:
/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 编辑:程序正在工作,因为我刚刚换了电脑。我按照相同的说明安装了OpenCV。是什么造成了这个错误??我的QT文件如下:
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 forlder只包含一个python文件夹,我无法在那里找到我的库。
EDIT2:我又安装了opencv,现在一切都很好。我想安装opencv的最后一步不起作用,所以我的/usr/local文件夹是空的。现在一切都在控制之中。
发布于 2013-12-17 22:18:13
最好将INCLUDEPATH初始化调整为以下内容,否则在路径开头引用opencv2的每个#include语句都会导致编译错误:
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>opencv_contrib备注:由于您使用pkg-config来添加所有OpenCV库,所以不需要这样做,但是对于那些单独指定库的人,您需要将添加到LIBS中。
https://stackoverflow.com/questions/20645565
复制相似问题