더북(TheBook)

동영상 파일은 모두 나름대로의 초당 프레임 수, 즉 FPS(frames per second) 값을 가지고 있습니다. 동영상 파일을 재생하는 프로그램을 만들 경우 해당 동영상의 FPS 값을 고려하지 않으면 동영상이 너무 빠르거나 느리게 재생되는 경우가 발생합니다. 그러므로 동영상을 적절한 속도로 재생하려면 동영상의 FPS 값을 참고해야 합니다. OpenCV에서 동영상의 FPS 값을 확인하는 코드는 다음과 같습니다.

double fps = cap.get(CAP_PROP_FPS);

동영상 파일의 FPS 값을 이용하면 매 프레임 사이의 시간 간격을 계산할 수 있습니다. 이 값은 다음과 같이 간단한 산수를 통해 계산됩니다.

int delay = cvRound(1000 / fps);

예를 들어 초당 30프레임을 재생하는 동영상의 경우 delay 값은 33이며, 이는 매 프레임을 33ms 시간 간격으로 출력해야 함을 의미합니다. 여기서 구한 delay 값은 이후 동영상 프레임을 받아 와서 화면에 출력하는 반복문 안에서 waitKey() 함수의 인자로 사용됩니다.

동영상 파일을 불러와서 처리하는 예제 프로그램 소스 코드를 코드 4-3에 나타냈습니다. 코드 4-3의 video_in() 함수는 프로그램 실행 폴더에 있는 stopwatch.avi 파일을 불러와서 원본 프레임과 반전된 프레임을 함께 출력합니다. video_in() 함수가 정의된 소스 파일과 사용된 동영상 파일은 내려받은 예제 파일 중 ch04/video 프로젝트에서 확인할 수 있습니다.

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