9/02/2013

OpenCV Video Writer example source code (VideoWriter function)

This is video writer example source code.
This source code was used from video load & display.

...
int main()
{
    VideoCapture capture("rhinos.avi");
    Mat frame;

    //Set properties
    int askFileTypeBox = 0; //-1 is show box of codec
    int Color = 1;
    Size S = Size((int)capture.get(CV_CAP_PROP_FRAME_WIDTH), (int)capture.get(CV_CAP_PROP_FRAME_HEIGHT));

    //make output video file
    VideoWriter outVideo;
    //save video file by origin paramers
    outVideo.open(".\\outVideo.avi", askFileTypeBox, capture.get(CV_CAP_PROP_FPS), S, Color);

    double fps = capture.get(CV_CAP_PROP_FPS);
    //check
    if (!capture.isOpened())
    {
        printf("AVI file can not open.\n");
        return 0;
    }

    //create window
    namedWindow("w");

    while (1)
    {
        //grab frame from file & throw to Mat
        capture >> frame;
        if (frame.empty()) //Is video end?
            break;

        //processing example
        //Sobel(frame, frame, frame.depth(), 1, 0);

        ////////////////////
        //outVideo.write(frame);
        outVideo << frame;
        //display and delay
        imshow("w", frame);

        //delay by origin fps
        if (waitKey((1 / fps) * 1000) > 0)
            break;

    }

    return 0;
}
...

1 comment:

  1. 좋은 강의 잘 듣고 있습니다.
    그런데 4.0.1 버전에서는 CV_CAP_PROP_FRAME_WIDTH 등이 안 먹네요. CAP_PROP_FRAME_WIDTH로 쓰면 동작하는 것 같습니다.
    그리고 하나 질문 있습니다. 이상하게 노트북에 달린 카메라를 사용할 때 capture.get(CAP_PROP_FPS)로 읽어 보면 항상 0 입니다. 왜 그런걸까요? 일단 0인지 검사해서 0일 경우 임시로 30정도로 할당은 하고 있습니다만 왜 그런지 궁금해서요.
    계속 좋은 강의 부탁 드립니다.

    ReplyDelete