Opencvの動画読み込みに関して

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
だめにんげん

Opencvの動画読み込みに関して

#1

投稿記事 by だめにんげん » 8年前

Opencvで動画を読み込むことができません。

http://nonbiri-tereka.hatenablog.com/en ... /15/094559

上記のリンク様よりコードをお借りしてビルド、デバッグしてみたものの、frame.empty()となり、動画を読み込むことが出来ません。画像は読み込むことが出来るのでパスには問題はないと思っております。動画のサイズ等に問題があるのでしょうか。どうかお知恵を拝借させてください。どうかよろしくおねがいいたします。

void MovieRead(){
//動画の読み込み
VideoCapture video("me.mov");

//動画を再生する。
namedWindow("hoge");
while (1){
Mat frame;
video >> frame;
//フレームが空か、ボタンが押された時か一周したときに出る。
if ( waitKey(30) >= 0 || video.get(CV_CAP_PROP_POS_AVI_RATIO) == 1){
break;
}

if (frame.empty()){
cout << "no movie";
break;
}
imshow("hoge", frame);
}
}

int main(int argc, char const *argv[]){

MovieRead();



アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: Opencvの動画読み込みに関して

#2

投稿記事 by usao » 8年前

動画パスがまちがっていないなら,codec関係でしょうか.
それ系の場合,自分はcodecがどうのとかいう方面の話はさっぱりなので,
以下のようなぼんやりとした経験則しか言えませんが…

OpenCVでの動画読込は,
何やらうまくいってないときには,
フレーム画像のサイズだけは取れてるけど絵の中身がまったく入れてもらえなかったりとか
読めてるようでいて実はフレームの順序がぐっちゃぐちゃだったりとか
色々と嫌な現象が起きます.

あと,現在のOpenCVのバージョンではどうなのかわかりませんが,
少なくともOpenCV2.3くらいまでは,
opencv_ffmpeg.dll(だったかな?)というdllが読み込めるかどうかで内部で動画を扱う処理が分岐していて
(上記DLLが存在するとffmpeg, 無い場合はVFWっぽい)
上記DLLの有無によって,ある動画が読めたり読めなかったりの具合が変わったりします.
オフトピック
CVで作った無圧縮AVIはCV自身で読み込めないとかいう罠もあったな…

だめにんげん

Re: Opencvの動画読み込みに関して

#3

投稿記事 by だめにんげん » 8年前

ご返答ありがとうございます。プログラミング初心者なものでコーデックがなんたるかということすらも不確かなのが正直なところなんですが、貴重なご意見として参考にさせて頂きます。ありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る