2012-01-13 6 views
0

Qt4.8.0とOpenCV2.3.1ライブラリを使用してVisual Studio 2010でプロジェクトを作成しています。私が使用しない限り、すべてのものはいいです。OpenCV cvHaarDetectObjectエラー

cvHaarDetectObjects() 

機能です。プログラムは問題なくコンパイルされ、ビルドされましたが、アプリケーションを実行しようとするとエラー0xc000007bが表示されます。私はコンソールとこの関数が正常に動作する勝利で似たようなプログラムを行ってきました。このエラーメッセージが表示されるのはなぜですか?私はまた、使用しようとします:

CascadeClassifier *haar; 
haar->load("haarcascade_frontalface_alt.xml"); 

しかし、それはコンソールでも動作しません。

例コード

MainWindow.cpp:

MainWindow::MainWindow() 
{ 
temp = cvCreateImage(cvSize(200, 200), 8, 1); 
haarface = (CvHaarClassifierCascade*) cvLoad("haarcascade_frontalface_alt.xml"); 
storage = cvCreateMemStorage(0); 
twarze = cvHaarDetectObjects(temp, haarface, storage, 1.1, 3, CV_HAAR_DO_CANNY_PRUNING, cvSize(100,100)); 
} 

MainWindow.h:

class MainWindow 
{ 
private: 
    CvMemStorage *pamiec; 
    CvHaarClassifierCascade * haarface; 
    IplImage *temp2; 
    CvSeq *twarze; 
public: 
    MainWindow(void); 
}; 

多分それ.xmlファイルと間違って何か?

答えて

0

ファイルhaarcascade_frontalface_alt.xmlが現在のディレクトリに存在していますか? 存在しない場合、cvLoadはNULLを返します。 XMLファイルのフルパスを使用します。 また、エラー0xc000007bとは何ですか?あなたは完全なエラーの説明を投稿できますか?

+0

はい、私はこのディレクトリに存在すると確信しています。 "アプリケーションが正常に実行されませんでした(0xc000007b)。" OK "をクリックしてアプリケーションを閉じます。"私がtwarze = cvHaarDetectObjects(temp、haarface、storage、1.1、3、CV_HAAR_DO_CANNY_PRUNING、cvSize(100,100))という行をコメントします。すべてがうまくいきます。 – Marcin

0

スラッシュをバックスラッシュに変更するだけで動作します)cvLoad("\haarcascades\haarcascade_frontalface_alt.xml"); EDITED:正常にクラッシュしません。実際に私はopencv 2.4.8版で作業しています。このコードの問題は、サポートされなくなったと思われるcvHaarDetectObjectsです。代わりにdetectMultiScaleを使用することをお勧めします。