0

pandaboard ubuntu 12.04でOpenCVライブラリを使用しようとしています。

だから私はOpencv2.4.2バージョンをインストールし、コードは下にあります。

#include <stdio.h>
#include <stdlib.h>
#include "opencv2/opencv.hpp"

int main*int argc, char** argv)
{
    cvNamedWindow("origin", CV_WINDOW_AUTOSIZE);

    CvCapture *capture = cvCaptureFromAVI("hkleecv-desktop:/home/hkleecv/OpenCV-2.4.2/samples/cpp/captured.avi");

    IplImage *frameOrigin;

    if(!capture0 return 1;

    int key = 0;
    int fps = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);

    while(key != 'q')
    {
        frameOrigin = cvQueryFrame(capture);

        cvShowImage("origin", frameOrigin);

        key = cvWaitKey(1000/fps);
    }

cvReleaseCapture(&capture);

    cvDestroyWindow("origin");

}

問題は、このプログラムが avi ファイルからフレームを取得できないことです。(このコードは VS2010 C++ でうまく機能しました)

gdb を使用してシェルでプログラムを実行すると、「Inferior 1 (process nnnn) exited with code 01」というメッセージが返されるだけです。

このエラーについてググったところ、私と同じような問題を抱えている人が投稿したページが見つかりましたが、cvCaptureFromAVI() は現在機能していません。

cvaptureFromAVI() を機能させるためにここから何ができるか教えてもらえますか?

4

1 に答える 1

0
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;
using namespace std;

int main()
{
    cvNamedWindow("origin", CV_WINDOW_AUTOSIZE);

    CvCapture *capture = cvCaptureFromAVI("C:\\j.avi");

    IplImage *frameOrigin;

    if(capture==NULL) {
        return -1;
        cout<<"VIDEO NOT READ"<<endl;
    }

    int key = 0;
    int fps = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);

    while(key != 'q')
    {
        frameOrigin = cvQueryFrame(capture);

        if(frameOrigin == NULL)
            break;

        cvShowImage("origin", frameOrigin);
        key = cvWaitKey(1000/fps);
    }

    cvReleaseCapture(&capture);
    cvDestroyWindow("origin");

    return 0;

}

上記のコードを試してください... Windowsプラットフォームで動作します... aviファイルアドレスを正しく入力してください..

于 2013-01-18T13:28:41.153 に答える