0

この質問はerror-in-opencv-code-for-motion-detection の続きです。編集されたコードはエラーなしで動作しますが、出力ビデオは作成されません。これは 0 バイトです!何が問題なのですか?また、モーション検出用に作成されたバウンディング ボックスは、モーションを実際にキャプチャすることはありません。コードの目的について何か誤解しているのでしょうか?だから、ここに私の質問があります:

  1. 作成を修正してビデオを保存する方法は?
  2. 動きを検出して追跡するには、何を変更する必要がありますか?
  3. ビデオを各フレームから一連の番号付き jpg 画像に変換する方法、およびその逆の方法。
4

1 に答える 1

0

これは、一連の画像としてビデオをフレーム化するために使用できるコードです。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "cv.h"
#include <highgui.h>
#include "cxcore.h" 

int main( int argc, char** argv )
{    
     CvCapture *capture = cvCaptureFromAVI("E:\\Myvideo.avi");
             if(!capture) 
    {
        printf("!!! cvCaptureFromAVI failed (file not found?)\n");
        return -1; 
    }

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

    printf("* FPS: %d\n", fps);

    IplImage* frame = NULL;
    int frame_number = 0;
    char key = 0;   

    while (key != 'q') 
    {
        // get frame 
        frame = cvQueryFrame(capture);       
        if (!frame) 
        {
            printf("!!! cvQueryFrame failed: no frame\n");
            break;
        }       




        // quit when user press 'q'
        key = cvWaitKey(1000 / fps);
    }

    // free resources
    cvReleaseCapture(&capture);

    return 0;
}
于 2013-01-28T06:05:06.780 に答える