Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C++;ubuntu上的opencv:cvCaptureFromAVI()不';行不通_Ubuntu_Opencv_Arm_Pandaboard - Fatal编程技术网

使用C++;ubuntu上的opencv:cvCaptureFromAVI()不';行不通

使用C++;ubuntu上的opencv:cvCaptureFromAVI()不';行不通,ubuntu,opencv,arm,pandaboard,Ubuntu,Opencv,Arm,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 = cvCap

我正在尝试使用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");

}
#包括
#包括
#包括“opencv2/opencv.hpp”
int main*int argc,字符**argv)
{
cvNamedWindow(“原点”,CV_窗口_自动调整大小);
CvCapture*capture=cvCaptureFromAVI(“hklecv桌面:/home/hklecv/OpenCV-2.4.2/samples/cpp/captured.avi”);
IplImage*框架起源;
如果(!capture0返回1;
int键=0;
int fps=(int)cvGetCaptureProperty(捕获,CV_CAP_PROP_fps);
while(键!=“q”)
{
frameOrigin=cvQueryFrame(捕获);
cvShowImage(“原点”,frameOrigin);
键=cvWaitKey(1000/fps);
}
cvReleaseCapture(&capture);
CVI(以下简称“原点”);
}
问题是这个程序无法从avi文件中获取帧。 (此代码在VS2010 C++上运行良好)

当我在带有gdb的shell上运行程序时,它只返回消息“劣质1(进程nnnn)退出,代码为01”

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

有人能告诉我,从这里我能做些什么来让cvaptureFromAVI()工作吗?

#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间cv;
使用名称空间std;
int main()
{
cvNamedWindow(“原点”,CV_窗口_自动调整大小);
CvCapture*capture=cvCaptureFromAVI(“C:\\j.avi”);
IplImage*框架起源;
如果(捕获==NULL){
返回-1;

coutOh我修复了这个问题。我只是在写入文件地址时犯了一个错误。通过在终端上写入pwd命令,我找到了正确的地址。现在frameOrigin=cvQueryframe(capture);…上的另一个SIGSEGV分段错误我想我必须问另一个问题。
#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;

}