04-25 20:26
Notice
Recent Posts
Recent Comments
관리 메뉴

Scientific Computing & Data Science

[OpenCV] Camera Frame Capture 본문

Programming/OpenCV

[OpenCV] Camera Frame Capture

cinema4dr12 2015. 3. 31. 23:56

OpenCV에서 Webcam으로부터  camera frame을 얻어와서  Window에 띄우는 절차는 다음과 같습니다:

  (1) VideoCapture 인스턴스를 생성한다.

  (2) 생성한 인스턴스가 유효한지 검사한다.

  (3) Window를 생성한다.

  (4) Frame을 갱신한다.

  (5) 생성한 Window에 갱신된 frame을 디스플레이한다.

  (6) Window가 닫힐 때까지 (4) - (5)를 반복한다.

Example Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "stdafx.h"
#include <opencv2/opencv.hpp>
#include <stdlib.h>
 
using namespace cv;
 
//////////////////////////////////////////////////////////////////
// function : main
int main( int argc, char** argv )
{
    // frame capture from webcam
    cv::VideoCapture capture(0);
 
    // is camera opened?
    if!capture.isOpened() ) {
        std::cerr << "Cannot open camera" << std::endl;
        return 0;
    }
 
    // create a window
    cv::namedWindow( "Webcam"1 );
 
    // while loop for image capture from webcam
    whiletrue ) {
        bool frame_valid = true;
 
        cv::Mat frame;
 
        try {
            // get a new frame from webcam
            capture >> frame;
        }
        catch( cv::Exception& e ) {
            std::cerr << "Exception occurred. Ignoring frame... " << e.err << std::endl;
            frame_valid = false;
        }
 
        if ( frame_valid ) {
            try {
                // print the output
                cv::imshow( "Webcam", frame );
            }
            catch( cv::Exception& e ) {
                std::cerr << "Exception occurred. Ignoring frame... " << e.err << std::endl;
            }
        }
 
        if ( cv::waitKey( 30 ) >= 0 ) break;
    }
 
 
    return 0;
}
cs


Comments