人脸识别器未在此范围内声明
faceRecognizer was not declared in this scope
我使用的是支持人脸识别的 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
编辑:该程序正在工作,因为我刚刚更换了计算机。我按照相同的说明安装了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 forlder 只包含一个 python 文件夹,我无法在那里找到我的库。
编辑2:我再次安装了opencv,现在一切正常。我猜安装 opencv 的最后一步不起作用,所以我的/usr/local 文件夹是空的。现在一切都在掌控之中。
最好将
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>
注意:由于您使用 pkg-config 添加所有 OpenCV 库,因此您不需要这样做,但对于那些单独指定库的人,您需要将opencv_contrib添加到LIBS
。
相关文章:
- 错误:未在此范围内声明'reverse'
- 错误:"imread"未在此范围内声明
- 未在此范围内声明错误 'xy'
- Socklen_t未在此范围内声明
- 错误:'[' 之前预期的非限定 id 和错误:'users'未在此范围内声明
- "Main"已在当前范围内声明
- c++ 变量在宏的扩展中没有在这个范围内声明
- C++ 在编译过程中 strtok 函数 Eclipse 说没有在范围内声明?
- 'num1'未在此范围内声明
- 如何找到在本地范围内声明的变量的地址?
- NT状态未在此范围内声明
- 变量未在此范围内声明 数组线性搜索
- 包含文件中的 Typdef "未在此范围内声明"
- 'ClassName'和'ClassInstance'未在此范围内声明
- C++ 中的类之间的数据重新循环 - 错误:'<class name>'未在此范围内声明
- 代码作为 C 文件工作,但不作为C++文件,错误:'__builtin_types_compatible_p'未在此范围内声明
- 如何修复错误:"vreinterpretq_u32_f64"未在此范围内声明 - 在Android上使用Eigen构建
- 如何修复C++中的"arrStud未在此范围内声明"错误
- 错误:"SHGetKnownFolderPath"未在此范围内声明
- 错误:'Sprite'未在此范围内声明