• 締切済み

aviファイルの読み込み

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ファイルに書き出したものです。

みんなの回答

  • cotae_bb
  • ベストアンサー率53% (51/95)
回答No.1

> if((capture = cvCaptureFromFile("pla.avi")) == NULL){ この書き方だと、exeファイルと同じパスにないとaviファイルを読み込めないと思うのですが… メッセージボックス等を利用してどこまでプログラムが進行しているか デバッグしてみましょう。 また、実行されないとはどういうことでしょうか? それだけでは意味がわかりません。 もう少し具体的に書くと詳しい回答が得られると思います。

illckbc
質問者

補足

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