카메라와 동영상 처리
VideoCapture 클래스
- OpenCV에서는 카메라, 동영상으로부터 프레임을 받아오는 작업을
VideoCapture
클래스 하나로 처리
- 멤버 함수
open()
: 카메라 또는 파일 열기
isOpenec()
: open 여부 확인
read()
: 현재 프레임 받아오기
get()
, set()
: 속성 설정
grab()
: 현재 프레임 캡쳐 시작
retrieve()
: 캡쳐된 영상 받아오기
release()
: 사용 끝남 알림
카메라 열기
VideoCapture::VideoCapture(int index, int apiPreference = CAP_ANY);
bool VideoCapture::open(int index, int apiPreference = CAP_ANY);
index
: 사용할 캡쳐 장치의 ID, 기본 카메라의 경우 0
apiPreference
: 카메라 처리 방법, 보통 default값 그대로 사용
- 반환값
- VideoCapture 생성자 : VideoCapture 객체 반환
- open() 함수 : 작업이 성공하면 true, 실패하면 false
동영상 파일 열기
VideoCapture::VideoCapture(const string& filename, int apiPreference = CAP_ANY);
bool VideoCapture::open(const string& filename, int apiPreference = CAP_ANY);
filename
: 동영상 파일 이름
apiPreference
: 카메라 처리 방법, 보통 default값 그대로 사용
- 반환값
- VideoCapture 생성자 : VideoCapture 객체 반환
- open() 함수 : 작업이 성공하면 true, 실패하면 false
현재 프레임 받아오기
bool VideoCapture::read(OutputArray image);
VideoCapture& VideoCapture::operator >> (Mat& image);
image
: 현재 프레임, 만약 받아오지 못하면 비어 있는 영상으로 설정
- 반환값 : read()함수는 작업이 성공하면 true, 실패하면 false 반환
>> 연산자
오버로딩은 내부에서 read()함수를 재호출하는 wrapper 함수