카메라 또는 동영상 파일 열기를 수행한 후에는 VideoCapture::isOpened() 멤버 함수를 이용하여 열기 작업이 성공적으로 수행되었는지 확인하는 것이 좋습니다.
bool VideoCapture::isOpened() const; |
|
• 반환값 |
카메라 또는 동영상 파일이 사용 가능하면 true, 그렇지 않으면 false |
카메라 장치 또는 동영상 파일의 사용이 끝나면 VideoCapture::release() 함수를 호출하여 사용하던 자원을 해제해야 합니다. 참고로 VideoCapture 클래스의 소멸자에도 VideoCapture::release() 함수와 마찬가지로 사용하고 있던 자원을 모두 해제하는 코드가 들어가 있어서 VideoCapture 객체가 소멸할 때 자동으로 열려 있던 카메라 장치 또는 동영상 파일이 닫히게 됩니다. VideoCapture::release() 함수 원형은 다음과 같습니다.
virtual void VideoCapture::release(); |
이번에는 카메라 또는 동영상 파일로부터 한 프레임의 정지 영상을 받아 오는 방법에 대해 알아보겠습니다. VideoCapture 클래스를 이용하여 카메라 또는 동영상 파일을 정상적으로 열었다면, 그 후에는 공통의 멤버 함수를 사용하여 프레임을 받아 올 수 있습니다. VideoCapture 클래스에서 한 프레임을 받아 오기 위해서는 VideoCapture::operator >>() 연산자 재정의 함수 또는 VideoCapture::read() 함수를 사용합니다.
VideoCapture& VideoCapture::operator >> (Mat& image); bool VideoCapture::read(OutputArray image); |
|
• image |
다음 비디오 프레임. 만약 더 가져올 프레임이 없다면 비어 있는 행렬로 설정됩니다. |
• 반환값 |
프레임을 받아 올 수 없으면 false 반환 |