こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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ファイルが認識されるかわからず困っています。

申し訳ないのですが、解決法をご指導ください。
よろしくお願いします。

補足

投稿日時 - 2009-11-27 20:23:53

QNo.5480700

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.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を実行しましょう.
(デバッグモードで実行すると,プロジェクトプロパティの設定に
よってはカレントディレクトリが変なところになっている場合もあるため,
よく分からないなら上記の方法が確実です)

以上,参考になれば幸いです.

投稿日時 - 2009-12-03 18:43:48

あなたにオススメの質問