VideoCapture 클래스

00·2025년 1월 14일

VideoCapture 클래스

VideoCapture 클래스는 OpenCVSharp에서 웹캠이나 비디오 파일에서 영상을 가져오는 데 사용되는 중요한 클래스이다.
구체적으로 VideoCapture 클래스는 카메라 또는 비디오 파일에서 영상 프레임을 가져오는 역할을 한다. 쉽게 말해, 컴퓨터에 연결된 웹캠이나 저장된 비디오 파일에서 이미지를 읽어오는 도구라고 생각하면 된다.

VideoCapture 클래스를 사용하는 이유

  • 실시간 영상 처리: 웹캠에서 실시간으로 영상을 가져와서 이미지 처리, 객체 인식, 얼굴 인식 등 다양한 작업을 수행할 수 있다.
  • 비디오 파일 분석: 비디오 파일에서 프레임 단위로 이미지를 읽어와서 분석하거나, 특정 프레임을 추출할 수 있다.

VideoCapture 클래스 사용 예시

using OpenCvSharp;

// 웹캠에서 영상 캡처
VideoCapture capture = new VideoCapture(0); // 0은 기본 웹캠 장치를 나타낸다.

// 캡처가 성공적으로 열렸는지 확인
if (!capture.IsOpened())
{
    Console.WriteLine("카메라를 열 수 없습니다.");
    return;
}

// Mat 객체 생성
Mat frame = new Mat();

// 무한 루프를 돌면서 프레임을 읽어와 화면에 표시
while (true)
{
    capture.Read(frame); // 현재 프레임을 읽어와 frame에 저장

    if (!frame.Empty()) // 프레임이 비어있지 않으면
    {
        Cv2.ImShow("Webcam", frame); // 프레임을 "Webcam" 창에 표시
    }

    if (Cv2.WaitKey(1) == 'q') // 'q' 키를 누르면 종료
        break;
}

// 캡처 해제
capture.Release();
Cv2.DestroyAllWindows();

사용 방법

  1. 생성: VideoCapture capture = new VideoCapture(deviceId); 와 같이 VideoCapture 객체를 생성한다. deviceId는 카메라 장치 번호 또는 비디오 파일 경로이다.
  2. 프레임 읽기: capture.Read(frame); 와 같이 Read() 메서드를 사용하여 프레임을 읽어와 Mat 객체에 저장한다.
  3. 속성 설정: capture.FrameWidth, capture.FrameHeight, capture.Fps 등의 프로퍼티를 사용하여 프레임 너비, 높이, 초당 프레임 수 등을 설정할 수 있다.
  4. 해제: capture.Release(); 메서드를 사용하여 캡처를 해제한다.

참조

https://076923.github.io/posts/C-opencv4-3/

0개의 댓글