人生のプチ美学を教えてください!!

opencv2.2でaviファイルの読み込みを行うプログラムを作成しました。
しかし、コンパイルは通りますが実行されません。aviファイルはプロジェクトフォルダ内に入れてあるのでパスの間違いはありません。
どうしたら、動くようになるでしょうか?

環境はwindows7の64bitで、visual studio 2010で行っています。
ソースは以下の通りです。
*********************************
int main( int argc, char** argv )
{
int k;

//映像の読み込み
CvCapture* capture;
char* captureWindow = "Capture";

////AVIファイルの読み込み・出力

if((capture = cvCaptureFromFile("pla.avi")) == NULL){
//ファイルが見つからないとき
return -1;
}

img0 = cvQueryFrame(capture); //キャプチャサイズを知るために画像取得

cvNamedWindow( "入力", 1 );

//キャプチャしたフレーム画像をsave[]に格納
for(k=1;;k++){
frame = cvQueryFrame(capture);

if(frame == NULL)
break;
else{
img = cvCloneImage(frame);
cvShowImage( "入力", img );

if(cvWaitKey(30) == '\x1b')
break;
}
}
cvReleaseCapture(&capture);
cvDestroyWindow("入力");

return 0;
}
****************************

aviファイルはflashで作成したものをaviファイルに書き出したものです。

A 回答 (1件)

> if((capture = cvCaptureFromFile("pla.avi")) == NULL){


この書き方だと、exeファイルと同じパスにないとaviファイルを読み込めないと思うのですが…

メッセージボックス等を利用してどこまでプログラムが進行しているか
デバッグしてみましょう。

また、実行されないとはどういうことでしょうか?
それだけでは意味がわかりません。
もう少し具体的に書くと詳しい回答が得られると思います。

この回答への補足

回答ありがとうございます。

> if((capture = cvCaptureFromFile("pla.avi")) == NULL){
この書き方だと、exeファイルと同じパスにないとaviファイルを読み込めないと思うのですが…
windowsXP、visualstudio2005からwindows7に環境を変えて行っており、同じプログラムを実行すると正常にaviファイルが読み込めるので、それはありません。
パス以外が原因だと考えられると思います。

実行されないとは、プログラムが停止してしまうということです。説明が足りなくてすみません。
デバッグしたときに「if((capture = cvCaptureFromFile("pla.avi")) == NULL)」の部分で止まってしまいます。

補足日時:2011/04/14 21:37
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!