1

OSX 10.8.3を搭載したMacにopencvをインストールしました.brewでインストールしました:

brew install opencv

バージョンは2.4.3です

>>> ls /usr/local/Cellar/opencv
2.4.3

動画を表示してみました。形式は .asf で、コーデックは MJPG (VLC でのみ開くことができます。スクリーンショットを参照してください)

フレーム数 (opencv で出力された場合、または VLC で表示された場合) は同じです。

しかし、opencv プログラムを実行すると、最初のフレームのみが表示されます。他のない..なぜ??

これはopencvコードです

#include <iostream> 
#include <string> 
#include <sstream>

#include <opencv2/core/core.hpp> 
#include <opencv2/imgproc/imgproc.hpp> 
#include <opencv2/highgui/highgui.hpp> 

using namespace std;
using namespace cv;


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

    Mat frame;
    int numframe = 0;

    if (argc != 2) {
        cout << "Not enough parameters" << endl;
        return -1;
    }

    const string source = argv[1];
    VideoCapture capture(source);
    namedWindow("video", CV_WINDOW_AUTOSIZE);

    if (!capture.isOpened()) {
        cout  << "Could not open " << source << endl;
        return -1;
    }

    for(;;) {
        capture >> frame;
        numframe++;
        if (frame.empty()) {
            cout << "frame empty.." << endl;
            break;
        }
        cout << numframe << endl;
        imshow("video", frame);
    }

    return 0;
}

ここに画像の説明を入力

4

2 に答える 2

1

より多くのコーデックにアクセスするために、FFMPEG サポートを有効にして OpenCV をコンパイルしてみてください。brew で出来ない場合は、brew で ffmpeg と cmake をインストールし、github で OpenCV のソースを取得して再コンパイルします。

于 2013-04-18T18:42:18.757 に答える