지금까지 설명한 카메라 처리 소스 코드를 모아서 예제 프로그램을 만들어 보겠습니다. 코드 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 }