在 ubuntu 上使用 C++ opencv : cvCaptureFromAVI() 不起作用



我试图在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在shell上运行程序时,它只是返回消息"劣等1(进程nnnn)退出,代码为01"

我在谷歌上搜索了这个错误,发现了一个与我有类似问题的人发布的页面,但cvCaptureFromAVI()目前不工作。

  • http://cellprogramming.wordpress.com/2009/05/24/opencv-cvcapturefromavi-error-in-ubuntu-9-04/
  • http://gijs.pythonic.nl/blog/2009/may/3/getting-video-io-working-opencv-and-ubuntu-jaunty-/

有人能告诉我我能做些什么从这里使cvaptureFromAVI()工作?

#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地址

相关内容

  • 没有找到相关文章

最新更新