1

こんにちは私はこのコードを実行しようとしていますが、セグメンテーションエラーが発生します。さらに処理するために、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;
}
4

1 に答える 1

0

最初の回答は確かに役に立ちます。ただし、ここにはさらに問題があります。ある時点cvReleaseImage(&img);で、NULL imgを使用します。また、現在の問題ではないかもしれませんが、そうでないことも確認する必要がありcvReleaseVideoWriter(&writer);ますwriter == NULL。これは現在、正しく処理されていません...

于 2013-03-09T21:10:25.757 に答える