0

私はhttp://docs.opencv.org/trunk/modules/contrib/doc/facerec/tutorial/facerec_video_recognition.htmlで顔認識の例に取り組んでいます。関連する場合、ubuntuでEclipseを使用しています。以前は 2.3.1 を使用していましたが、エラーが発生した ‘FaceRecognizer’ was not declared in this scopeため、ここで返信を行った後https://stackoverflow.com/a/11399099/824239別のパスで opencv のバージョン 2.4.5 に更新しましたが、以前はopencv のバージョンはまだマシン上にあります。インクルード パスとライブラリを Eclipse プロジェクトの新しい場所に移動した後も、同じエラーが発生します。

make all 
Building file: ../src/faceRec_vid.cpp
Invoking: GCC C++ Compiler
g++ -I/usr/local/research/opencv/include/opencv2 -I/usr/local/research/opencv/include/opencv -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/faceRec_vid.d" -MT"src/faceRec_vid.d" -o"src/faceRec_vid.o" "../src/faceRec_vid.cpp"
../src/faceRec_vid.cpp: In function ‘int main(int, const char**)’:
../src/faceRec_vid.cpp:87:9: error: ‘FaceRecognizer’ was not declared in this scope
../src/faceRec_vid.cpp:87:23: error: template argument 1 is invalid
../src/faceRec_vid.cpp:87:31: error: invalid type in declaration before ‘=’ token
../src/faceRec_vid.cpp:87:60: error: ‘createFisherFaceRecognizer’ was not declared in this scope
../src/faceRec_vid.cpp:88:10: error: base operand of ‘->’ is not a pointer
../src/faceRec_vid.cpp:118:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
../src/faceRec_vid.cpp:136:35: error: base operand of ‘->’ is not a pointer
make: *** [src/faceRec_vid.o] Error 1

私のEclipseプロジェクトを正しいバージョンに向けるために必要なことは何かありませんか? このエラーを取り除くにはどうすればよいですか。

4

2 に答える 2

0

おそらくこれで解決しましたが、まだ解決していない場合は、これが私の解決策でした。チュートリアルコードを自分で試したときに、この問題に遭遇しました。を含める必要があります<opencv2/contrib/contrib.hpp>。それが役立つことを願っています。

于 2014-06-05T06:12:32.037 に答える
0

2.4.5 に「更新」したと言いましたが、OpenCV 2.3.1 がまだ存在するということは、2.4.5 を別のパスにインストールしたことを意味します。OpenCV 2.4.5 ライブラリを使用するように Eclipse を適切に構成していないため、同じエラーが発生しました。/usr/local/lib には 2.3.1 の so(共有オブジェクト) ファイルがあり、eclipse に新しいライブラリをリンクするように要求していないため (g++ で -l が渡されていない)、デフォルトで古いライブラリにリンクされています。

これを行うには、Project-->Propertiesに移動します。

GCC C++ Linkerを展開し、 Librariesをクリックします。

ライブラリ検索パス (-L)に、OpenCV2.4.5 をインストールしたパスを入力します。

次に、Libraries(-l)で必要な OpenCV ライブラリを追加します (opencv_core opencv_imgproc opencv_highgui)。

于 2013-05-18T13:57:30.077 に答える