从JPG opencv制作avi文件

时间:2013-03-09 20:02:24

标签: c++ opencv

您好我正在尝试运行此代码,但它给了我分段错误。我想在本地保存4秒的IP摄像头,作为进一步处理的avi。我似乎无法访问直接馈送,所以我必须采取间接方式。

#include "cv.h"
#include "highgui.h"
#include<iostream>
using namespace std;

int main()
{
    IplImage *img;
    CvSize size;

    img = cvLoadImage(" http://192.168.1.4:1024/shot.jpg");
    size.width=img->width;
    size.height = img->height;

    CvVideoWriter *writer = cvCreateVideoWriter(
        "out.avi",
        CV_FOURCC('P','I','M','1') ,
        30,
        size,
        TRUE
    );
    if(writer ==NULL)
    {
        cout<<"No videowrite here !!!!"<<endl;
    }

    while(img!= NULL)
    {
        img = cvLoadImage("http://local_ip:1024/shot.jpg");
        cvWriteFrame(writer,img);
    }

    cvReleaseVideoWriter(&writer);
    cvReleaseImage(&img);

    return 0;
}

1 个答案:

答案 0 :(得分:0)

第一个答案肯定是有帮助的。但是你有更多的问题。 在某些时候,你将使用NULL img转到cvReleaseImage(&img);! 此外,虽然这可能不是您当前的问题,但您还应该确保cvReleaseVideoWriter(&writer); writer == NULL {{1}}。 现在没有正确处理......