웹캠을 이용한 영상처리를 하면서 자주 사용하는 함수를 정리해보았습니다. 가장 기본적으로 쓰이는 함수이지만 어떠한 구조로 이루어져있고 어떠한 기능을 하고 있는지 자세히 알아보도록 하겠습니다.

데이터 구조

□ CvCapture : 비디오 캡쳐 함수를 사용하기 위한 데이터 구조

□ CvVideoWriter : 비디오 저장 함수를 사용하기 위한 데이터 구조

시작 / 해제

□ cvCaptureFromCAM : 카메라에서 프레임 캡쳐 

CvCapture* cvCapturefromCAM(int index);
(index는 0번째, 1번째 카메라를 가리키는 변수)

□ cvCaptureFromFile : 비디오 파일에서 프레임 캡쳐 시작

CvCapture* cvCapturefromFile(const char* filename);

□ cvReleaseCapture : 할당한 CvCatpure 데이터 구조를 해제한다.

void cvReleaseCapture(CvCapture** capture);

프레임 가져오기

□ cvGrabFrame  : 카메라 또는 파일에서 프레임을 잡는다.

int cvGrabFrame(CvCapture* capture);

□ cvRetrieveFrame : cvGrabFrame에서 잡은 프레임에서 영상 데이터를 가져온다.

IplImage* cvRetrieveFrame(CvCapture* capture);

□ cvQueryFrame : 카메라 또는 파일에서 잡은 프레임을 풀은 영상 데이터를 반환한다. 
  실제로 cvGrabframe() 함수와 cvRetrieveFrame() 함수의 연속된 순서와 같다.

IplImage* cvQueryFrame(CvCapture* capture);

프레임 저장하기


□ cvCreateVideoWriter : 비디오 파일 작성자(video file writer)를 생성한다.


CvVideoWriter* cvCreateVideoWriter(const char* filename, int fourcc, double fps, CvSize frame_size, int is_color = 1);


□ cvWriteFrame : 비디오 파일 작성자에 프레임을 저장한다.


int cvWriteFrame(CvVideoWriter* writer, const IplImage* image);


□ cvReleaseVideoWriter : 비디오 파일 작성자를 해제한다.


void cvReleaseVideoWriter(CvVideoWriter** writer);


+ Recent posts