본문 바로가기

CLASS

[OpenCV] 입력 받은 영상 AVI 로 저장하기 추가 소스 - DirectX 버전

CvCam 으로 입력 받은 영상을 매 frame 마다 callback 함수를 호출하여 AVI 로 저장하는 소스 코드 입니다. 입력 받아 뿌려주는 부분이 DirectX 를 이용한 것이죠.

http://opencv.co.kr

- 소스 코드
#include <cv.h>
#include <highgui.h>
#include <cvcam.h>

void callback(IplImage* image);

typedef struct CvVideoWriter CvVideoWriter;

CvVideoWriter* VideoOut = NULL;

void main()
{
    int nselected = cvcamSelectCamera(0);
    cvcamSetProperty(0, CVCAM_PROP_ENABLE, &nselected);

    int width = 640,
         height = 480;
 
    cvcamSetProperty(0, CVCAM_RNDWIDTH, &width);  // 카메라 입력 사이즈 너비
    cvcamSetProperty(0, CVCAM_RNDHEIGHT, &height);  
// 카메라 입력 사이즈 높이

    cvcamSetProperty(0, CVCAM_PROP_CALLBACK, callback); // frame 마다 호출될 함수
 
    cvcamInit( );
    cvcamStart( );
 
    cvWaitKey(0);

    cvReleaseVideoWriter(&VideoOut);

    cvcamStop( );
    cvcamExit( );
}

void callback(IplImage* image)
{
    if(VideoOut == NULL)
        VideoOut = cvCreateVideoWriter( "save.avi", -1, 30, cvGetSize(image), 1);
 
    cvWriteFrame(VideoOut, image);
}