2017-05-12 17:40:00

오늘은 http://opencvexamples.blogspot.com/p/learning-opencv-functions-step-by-step.html에 있는 두번째 예제를 공부해보겠습니다!

 

2. Capture video from camera

 

카메라를 작동시켜 촬영된 비디오를 캡쳐하는 방법입니다. 우선 코드부터 보시죠. 위 링크에서 소개하고 있는 예제에 좀 더 덧붙여 캡쳐한 비디오를 그레이영상으로 전환한 것도 함께 출력하도록 코드를 변경했습니다.

 

#include "opencv2/opencv.hpp"

using namespace cv;

 

int main(int, char**)

{

VideoCapture cap(0); // open the default camera

if (!cap.isOpened())  // check if we succeeded

return -1;

 

namedWindow("Video", 1);

        namedWindow("Video1", 1);

 

while (1) // 무한루프

{

Mat frame, gray_frame;

cap >> frame;         // 카메라로부터 새 프레임을 얻는다. 

cvtColor(frame, gray_frame, COLOR_BGR2GRAY);    // 얻은 프레임을 그레이이미지로 변환한다. 

imshow("Video1", frame);    // 컬러영상 전시

imshow("Video", gray_frame);    // 그레이 영상 전시

 

if (waitKey(30) == 'c') break;    // c를 타이핑해줘야 무한루프 탈출! 

}

 

return 0;

}

 

소스코드에서 VideoCapture cap(0);에 있는 VideoCapture는 동영상 캡쳐를 위한 클래스라고 하네요. 이 코드를 실행해보면, default camera로 설정되어 있는 웹캠에서 찍히고 있는 장면이 전시됩니다. 아래는 영상으로 출력되고 있는 장면을 스샷찍은 장면입니다.