더북(TheBook)

지금까지 설명한 카메라 처리 소스 코드를 모아서 예제 프로그램을 만들어 보겠습니다. 코드 4-2의 camera_in() 함수는 카메라 장치를 사용하는 기본적인 소스 코드를 담고 있습니다. 다만 camera_in() 함수에는 카메라로부터 받아 온 매 프레임에 대해 반전 영상을 생성하고 화면에 출력하는 코드가 추가되어 있습니다. camera_in() 함수가 정의된 소스 파일은 내려받은 예제 파일 중 ch04/video 프로젝트에서 확인할 수 있습니다.

코드 4-2 카메라 입력 처리 예제 프로그램 [ch04/video]

01    void camera_in()
02    {
03        VideoCapture cap(0);
04     
05        if (!cap.isOpened()) {
06            cerr << "Camera open failed!" << endl;
07            return;
08        }
09     
10        cout << "Frame width: " << cvRound(cap.get(CAP_PROP_FRAME_WIDTH)) << endl;
11        cout << "Frame height: " << cvRound(cap.get(CAP_PROP_FRAME_HEIGHT)) << endl;
12     
13        Mat frame, inversed;
14        while (true) {
15            cap >> frame;
16            if (frame.empty())
17                break;
18     
19            inversed = ~frame;
20     
21            imshow("frame", frame);
22            imshow("inversed", inversed);
23     
24            if (waitKey(10) = = 27) // ESC key
25                break;
26        }
27     
28        destroyAllWindows();
29    }

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.