열려 있는 동영상 파일에 새로운 프레임을 추가하기 위해서는 << 연산자 재정의 또는 VideoWriter:: write() 함수를 사용합니다.
VideoWriter& VideoWriter::operator << (const Mat& image); void VideoWriter::write(InputArray image); |
|
• image |
추가할 프레임 |
<< 연산자 재정의 또는 VideoWriter::write() 함수를 이용하여 프레임을 추가할 때, 새로 추가하는 image 프레임 크기는 동영상 파일을 생성할 때 지정했던 프레임 크기와 같아야 합니다. 또한 컬러로 설정된 동영상 파일에 그레이스케일 영상을 추가하면 정상적으로 저장되지 않으므로 주의해야 합니다.
프레임 저장이 완료되었으면 열려 있던 파일을 닫는 VideoWriter::release() 함수를 호출해야 합니다. 다만 VideoWriter 클래스의 소멸자에서 VideoWriter::release() 함수를 호출하기 때문에 VideoWriter 객체가 소멸되면 자동으로 파일이 닫힙니다.
virtual void VideoWriter::release(); |
VideoWriter 클래스를 이용하여 실제로 동영상 파일을 생성하는 예제 소스 코드를 만들어 보겠습니다. 코드 4-5에 나타난 camera_in_video_out() 함수는 컴퓨터에 연결된 카메라로부터 프레임을 입력받고, 해당 프레임을 반전한 영상을 이용하여 동영상 파일을 생성합니다. 즉, VideoCapture 클래스를 이용하여 카메라 장치를 열고, VideoWriter 클래스를 이용하여 반전된 동영상 파일을 생성합니다. camera_in_video_out() 함수가 정의된 소스 파일은 내려받은 예제 파일 중 ch04/video 프로젝트에서 확인할 수 있습니다.