더북(TheBook)

이 절에서는 주로 VideoCapture 클래스 기능과 멤버 함수 사용법에 대해 알아보고, 실제 소스 코드 작성 방법에 대해서는 다음 절에서 예제 코드와 함께 설명하겠습니다.

먼저 VideoCapture 클래스를 사용하여 동영상 파일을 불러오는 기능에 대해 알아보겠습니다. VideoCapture 클래스에서 동영상 파일을 불러오려면 처음 VideoCapture 객체를 생성할 때 생성자에 동영상 파일 이름을 지정하거나 또는 기본 생성자로 VideoCapture 객체를 생성한 후 VideoCapture::open() 멤버 함수를 호출해야 합니다. 이때 사용하는 VideoCapture 생성자와 VideoCapture::open() 멤버 함수 원형은 다음과 같습니다.

VideoCapture::VideoCapture(const String& filename, int apiPreference = CAP_ANY);
bool VideoCapture::open(const String& filename, int apiPreference = CAP_ANY);

filename

동영상 파일 이름

apiPreference

사용할 비디오 캡처 API 백엔드

반환값

(VideoCapture::open() 함수) 열기가 성공하면 true, 실패하면 false

 

filename 인자에는 말 그대로 *.avi, *.mpg, *.mp4 등 확장자를 갖는 동영상 파일 이름을 전달합니다. 현재 프로그램 실행 폴더에 동영상 파일이 있으면 “video.mp4” 형태로 파일 이름만 지정하면 되고, 다른 폴더에 동영상 파일이 있다면 절대 경로 또는 상대 경로를 추가하여 파일 이름을 지정합니다. 예를 들어 하드디스크의 C 드라이브 최상위 폴더에 video.mp4 파일이 있다면 “C:\\video.mp4” 형태로 파일 이름을 전달합니다. 하나의 동영상 파일 대신 일련의 숫자로 구분되는 이름의 정지 영상 파일을 가지고 있고, 이 파일을 차례대로 불러오고 싶을 때에도 VideoCapture 클래스를 사용할 수 있습니다. 예를 들어 img0001.jpg, img0002.jpg, img0003.jpg 등의 이름으로 구성된 다수의 정지 영상 파일이 있을 경우, filename 인자에 “img%04d.jpg”라고 입력하여 일련의 영상 파일을 차례대로 불러올 수 있습니다. 또한 filename 인자에 “protocol://host:port/script_name?script_params|auth” 형태의 비디오 스트림 URL을 지정하여 인터넷 동영상을 사용할 수도 있습니다.

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