2012-03-12 6 views
2

私はopencv(2.3.1)をインストールしましたが、今はQt(SDK 1.1.3、Creator 2.3.0)で使用しています。 (私はこのチュートリアルを使用しました:http://www.barbato.us/2011/12/20/opencv-2-3-qtcreator-windows/OpenCV CascadeClassifierの初期化

最初に試したことは、HelloWorldの例(公式サイトのGetting Startedのようなもの)でしたが、問題はありませんでした。私はまたいくつかの例を試しました。

今私は顔認識の例に問題があります。コード自体はhttp://www.opencv.org.cn/opencvdoc/2.3.1/html/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.htmlで見つけることができますが、実行しようとすると、プログラムはコード0で終了しますが、実際には何も起こりません。それを解決しようとしてから数時間後、問題自体がCascadeClassifier変数にあることが分かりました。だから私は、任意の作業サンプルを持っているし、CascadeClassifierクラスのオブジェクトを初期化しようとすると、プログラムはこの行にコード0で終了します。

CascadeClassifier face_cascade; 

グローバル変数であるかどうかには依存しません。私もポインタを初期化しようとしましたが、オブジェクト作成時にも同じことが起こります。


最後に、ライブラリ全体を再コンパイルしましたが、今はすべて問題ありません。 答えをありがとう!

+0

はhaarcascade_frontalface_alt.xml'成功し 'あなたのコードのロードしていますか? –

+1

どうすれば確認できますか?私のプログラムは読み込み直前に元のメッセージに書いた行で失敗します – user1263702

+0

デバッグを試してみてください!また、デバッガの経験がない場合は、関心のある行の前後にいくつかのprint文を記述してください。 –

答えて

0

データをOCVから実行可能なディレクトリにコピーします。サンプル顔検出データはOpenCV OpenCV-2.3.1/data/haarcascades/のソースツリーにあります。そこからプログラムのターゲットディレクトリにhaarcascade_frontalface_alt.xmlhaarcascade_eye_tree_eyeglasses.xmlをコピーします。

あなたの分類器はこれらのコードを正常にロードされた場合は、確認することができ
+0

私はすでにそれをやったことがありますが、プログラムはCascadeClassifierのコンストラクタコールで閉じます。正しい、私はそれをチェックした) – user1263702

-1

if (!cascade.load(classifierdir)) { 
    printf("Unable to load classifier from %s\n", classifierdir); 
    return 1; 
} 
+1

私はそれを試してみることはできませんので、プログラムは、 "カスケード"変数の初期化の行で閉じるでしょう: 'code' CascadeClassifier cascade; 'code' – user1263702