2013-12-17 3 views
0

나는 얼굴 인식을 지원하는 opencv의 2.4.7 버전을 사용하고 있습니다. 그러나 나는 다음과 같은 오류를 수신하고 있습니다 :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은 내가 거기에 내 libs와 찾을 수 없습니다 만 파이썬 폴더를 포함 얻었다.

EDIT2 : opencv를 다시 설치하면 모든 것이 정상적으로 작동합니다. opencv를 설치하는 마지막 단계가 작동하지 않아/usr/local 폴더가 비어 있다고 생각합니다. 이제는 모든 것이 통제하에 있습니다.

+0

여기서 'recognition/program.cpp' 줄의 코드는 어디입니까? – karlphillip

+0

내 라인 58 : Ptr 모델; –

+0

동종 요법의 복용량에 중요한 정보를 제공 할 때 도움이 어렵습니다. 'using namespace cv; '를 쓰는 것을 잊지 않았습니까? – karlphillip

답변

2

그것은이다 아마 최고의 당신이 다음에 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_contribLIBS에 추가해야합니다.

+0

contrib.hpp의 정확한 경로가 포함되어 있으므로 include에 다시 넣어야하는 이유는 무엇입니까? Karl이 내가 편집 한 것과 같은 오류가 발생했습니다. –

+0

INCLUDE 초기화를 변경하지 않으면 시작 부분에 * opencv2 *가없는 헤더를 포함해야합니다. ->'#include ' – karlphillip

관련 문제