ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OpenCV] 기본적인 Webcam 출력하기
    Tech/Development 2013. 9. 12. 10:42

    OpenCV를 이용하면 V4L 등을 사용하지 않고도 아주 간단하게 Webcam 영상을 출력할 수 있다. OpenCV가 2.x 버젼대에 접어들면서 cv namespace를 통해 자료구조를 깔끔하게 정리하려고 노력 중인데 아직까지는 1.x 대에 사용하던 IplImage 등 여러가지 인터페이스가 혼재되어 사용되는 현실이긴 하다.


    OpenCV 2.x 방식으로 Webcam을 출력하는 예제를 간단히 작성해보면 아래와 같다.

    /*
    *   @file ocv_cam_basic.cc
    *   @brief OpenCV Webcam
    *   @author http://thinkpiece.tistory.com
    */
    
    #include "opencv/cv.h"
    #include "opencv/highgui.h"
    #include <iostream>
    
    int main(int argc, char *argv[])
    {
        cv::VideoCapture capture(0);
    
        if( !capture.isOpened() ) {
            std::cerr << "Could not open camera" << std::endl;
            return 0;
        }
    
        cv::namedWindow("cam",1);
    
        while (true) {
            bool frame_valid = true;
    
            cv::Mat frame;
    
            try {
                capture >> frame; // get a new frame from webcam
            } catch(cv::Exception& e) {
                std::cerr << "Exception occurred. Ignoring frame... " << e.err
                          << std::endl;
                frame_valid = false;
            }
    
            if (frame_valid) {
                try {
    
                    /*
                     * use 'frame' object for some vision tasks. 
                     *
                     */
                    cv::imshow("cam", frame);
    
                } catch(cv::Exception& e) {
                    std::cerr << "Exception occurred. Ignoring frame... " << e.err
                              << std::endl;
                }
            }
            if (cv::waitKey(30) >= 0) break;
        }
    
        // VideoCapture automatically deallocate camera object
        return 0;
    }
    

    댓글

Copyright 2022 JY