• 締切済み

OpenCVで携帯の動画をとりこみたいのですが、初心者のためやり方がわかりません。

http://chihara.naist.jp/opencv/?%C6%B0%B2%E8%A5%D5%A5%A1%A5%A4%A5%E... 上記サイトのプログラムを参考にさせていただき、作ったのですが… OpenCV1.0とVisualStdio2008C++を使用しています。 aviファイルは携帯動画をMobile 3GP converterを用いて変換したものをC++のソースファイルが置いてあるところに置いています。 しかし、「指定のaviファイルが見つかりません」となってしまいます。 プログラムは以下の通りです #include "cv.h" #include "cxcore.h" #include "highgui.h" #include <stdio.h> //読み込む動画ファイル名 char* filename="C:\\Users\\kimi\\Documents\\Visual Studio 2008\\Projects\\movie\\movie\\test.avi"; //IplImage IplImage* src; int main(){ CvCapture* capture = NULL; int key; //キー入力 //指定したAVIファイルが見つからない場合 if(NULL==(capture = cvCaptureFromAVI(filename))){ fprintf(stderr,"指定のaviファイルが見つかりませんでした."); return -1; } //画像表示ウィンドウの準備 cvNamedWindow("Source Image", CV_WINDOW_AUTOSIZE); //画像表示ウィンドウの出現位置指定 cvMoveWindow("Source Image", 50, 50); //処理ループの開始 for(;;){ //AVIファイルからフレーム画像を取り出す if(NULL==(src=cvQueryFrame(capture))){ break; } //画像表示 cvShowImage("Source Image", src); //キー入力 key = cvWaitKey(10); //ESCキーを押すと終了 if(key==0x1b) break; } //解放 cvReleaseCapture(&capture); cvDestroyWindow("Source Image"); return 0; } aviファイルの置き場所が悪いのか、aviファイル自体に問題があるのかわかりません。 初心者のため、どうしたらaviファイルが認識されるかわからず困っています。 申し訳ないのですが、解決法をご指導ください。 よろしくお願いします。 補足

みんなの回答

  • kirinoma
  • ベストアンサー率53% (288/542)
回答No.1

aviのコーデックがOpenCVで対応していないものなのではないかと思います. (確か,無圧縮かCinepakぐらいしかダメ) ・コーデック確認ソフト「真空波動研SuperLite」 http://www.forest.impress.co.jp/lib/pic/video/vdoenc/shinkuuslite.html ・再コーデックソフト http://www.tmpgenc.net/ja/j_main.html avi変換方法 http://www.xucker.jpn.org/pc/tmpgenc_wmv2avi.html また,ファイルのパス指定が怪しいかもしれないと思う場合は, ファイルの指定の仕方を"./test.avi"にし, リリースコンパイルしてexeを作成し,そのexeと同じ場所に test.aviを置いて,直接exeを実行しましょう. (デバッグモードで実行すると,プロジェクトプロパティの設定に よってはカレントディレクトリが変なところになっている場合もあるため, よく分からないなら上記の方法が確実です) 以上,参考になれば幸いです.

関連するQ&A

専門家に質問してみよう