VideoWriter 클래스란
VideoWriter 클래스는 OpenCV에서 동영상 파일을 생성하고 프레임을 저장하기 위해서 사용되는 클래스이다.
class VideoWriter
{
public:
VideoWriter();
VideoWriter(const String& filename. int fourcc, double fps, Size frameSize, bool isColor = true);
virtual ~VideoWriter();
virtual bool open(const String& filename, int fourcc, double fps, Size frameSize, bool isColor = true);
virtual bool ioOpened() const;
virtual void release();
virtual VideoWriter& operator << (const Mat& image);
virtual void write(const Mat& image);
virtual bool set(int proId, double value);
virtual double get(int proId) const;
static int fourcc(char c1, char c2, char c3, char c4);
...
};
새로운 동영상 파일을 만들려면 VideoWriter 클래스 객체를 먼저 생성해야 한다.
VideoWriter video;
간단하게 VideoWriter 기본 생성자를 이용하여 객체를 생성할 수 있다.
VideoWriter 멤버 함수
VideoWriter::open()
VideoWriter::VideoWriter(const String& filename, int fourcc, double fps, Size frameSize, bool isColor = true);
bool VideoWriter::open(const String& filename, int fourcc, double fps, Size frameSize, bool isColor = true);
filename : 저장할 동영상 파일 이름
fourcc : 동영상 압축 코덱을 표현하는 4- 문자 코드
fps : 저장할 동영상의 초당 프레임 수
frameSize : 동영상 프레임의 가로 및 세로 크기
isColor : 값이 trudlaus 컬러 동영상 저장, false이면 그레이스케일 동영상으로 저장한다. (Windows 운영 체제에서만 지원)
반환값 : 함수 열기에 성공하면 true, 실패 시 false 반환
VideoWriter 객체를 생성하였으면 VideoWriter::open() 멤버 함수를 이용해 저장할 동영상 파일을 쓰기 모드로 열어야 한다.
fourcc는 4- 문자 코드(four character code)의 약자이며, 말 그대로 4개의 문자로 구성된 코드이다.
fourcc는 동영상 파일의 코덱, 압축 방식, 색상 혹은 픽셀 포맷 등을 정의하는 정수 값이며,
코덱을 표현하는 4개의 문자를 묶어서 fourcc를 생성한다.
VideoWriter::fourcc();
static int VideoWriter::fourcc(char c1, char c2, char c3, char c4);
c1, c2, c3, c4 : 코덱을 표현하는 1byte 문자 4개
반환값 : 정수형 4-문자 코드
VideoWriter::write();
VideoWriter& VideoWriter::operator << (const Mat& image);
void VideoWriter::write(InputArray Image);
image : 추가할 프레임
열려 있는 동영상 파일에 새로운 프레임을 추가하는 함수로, << 연산자 재정의 또는 VideoWriter::write() 함수를 사용한다.
프레임을 추가할 때, 새로 추가하는 image 프레임 크기는 동영상 파일을 생성할 때 지정했던 프레임 크기와 같아야 한다.
또한 컬러로 설정된 동영상 파일에 그레이스케일 영상을 추가하면 정상적으로 저장되지 않는다.
VideoWriter::release();
virtual void VideoWriter::release();
프레임 저장이 완료되었으면 열려 있던 파일을 닫기 위해 VideoWriter::release() 함수를 호출해야 한다.
VideoWriter 클래스의 소멸자에서 VideoWriter::release() 함수를 호출하기 때문에 객체가 소멸되면 자동으로 파일이 닫힌다
'DevelopmentTool > OpenCV' 카테고리의 다른 글
[OpenCV] 도형 그리기 (0) | 2022.11.17 |
---|---|
[OpenCV] 직선 그리기 (0) | 2022.11.17 |
[OpenCV] VideoCapture 클래스 (0) | 2022.11.17 |
[OpenCV] InputArray, OutputArray 클래스 (0) | 2022.11.17 |
[OpenCV] Scalar 클래스 (0) | 2022.11.17 |