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();
・
・
・
Opencvの動画読み込みに関して
Re: Opencvの動画読み込みに関して
動画パスがまちがっていないなら,codec関係でしょうか.
それ系の場合,自分はcodecがどうのとかいう方面の話はさっぱりなので,
以下のようなぼんやりとした経験則しか言えませんが…
OpenCVでの動画読込は,
何やらうまくいってないときには,
フレーム画像のサイズだけは取れてるけど絵の中身がまったく入れてもらえなかったりとか
読めてるようでいて実はフレームの順序がぐっちゃぐちゃだったりとか
色々と嫌な現象が起きます.
あと,現在のOpenCVのバージョンではどうなのかわかりませんが,
少なくともOpenCV2.3くらいまでは,
opencv_ffmpeg.dll(だったかな?)というdllが読み込めるかどうかで内部で動画を扱う処理が分岐していて
(上記DLLが存在するとffmpeg, 無い場合はVFWっぽい)
上記DLLの有無によって,ある動画が読めたり読めなかったりの具合が変わったりします.
それ系の場合,自分はcodecがどうのとかいう方面の話はさっぱりなので,
以下のようなぼんやりとした経験則しか言えませんが…
OpenCVでの動画読込は,
何やらうまくいってないときには,
フレーム画像のサイズだけは取れてるけど絵の中身がまったく入れてもらえなかったりとか
読めてるようでいて実はフレームの順序がぐっちゃぐちゃだったりとか
色々と嫌な現象が起きます.
あと,現在のOpenCVのバージョンではどうなのかわかりませんが,
少なくともOpenCV2.3くらいまでは,
opencv_ffmpeg.dll(だったかな?)というdllが読み込めるかどうかで内部で動画を扱う処理が分岐していて
(上記DLLが存在するとffmpeg, 無い場合はVFWっぽい)
上記DLLの有無によって,ある動画が読めたり読めなかったりの具合が変わったりします.
オフトピック
CVで作った無圧縮AVIはCV自身で読み込めないとかいう罠もあったな…
Re: Opencvの動画読み込みに関して
ご返答ありがとうございます。プログラミング初心者なものでコーデックがなんたるかということすらも不確かなのが正直なところなんですが、貴重なご意見として参考にさせて頂きます。ありがとうございます。