2013-12-17 148 views
0

我正在使用支持人臉識別的2.4.7版本的opencv。但是我收到以下錯誤:faceRecognizer未在此範圍內聲明

/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 
    [email protected]:~/identification-build-desktop-Qt_4_8_1_in_PATH__System__Release$ 

在/ usr/local/lib目錄forlder僅包括一個python文件夾我無法找到我的庫那裏。

EDIT2: 我再次安裝了opencv,現在一切正常。我猜測安裝opencv的最後一步不起作用,所以我的/ usr/local文件夾是空的。現在一切都在掌控之中。

+0

「recognition/program.cpp」第58行代碼在哪裏? – karlphillip

+0

我的第58行:Ptr model; –

+0

當您在順勢療法劑量下提供重要信息時,很難提供幫助。你記得寫'使用命名空間簡介'嗎? – karlphillip

回答

2

這也可能是最適合你調整INCLUDEPATH初始化以下,否則每#include聲明指opencv2在路徑的開頭會導致編譯錯誤:

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

+0

既然你包含了contrib.hpp的確切路徑,爲什麼再把它放在include中呢?卡爾與你的編輯我得到了和以前一樣的錯誤。 –

+0

如果你不改變INCLUDE的初始化,那麼你需要** #include **在開頭沒有* opencv2 *的頭文件 - >'#include ' – karlphillip