Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++와 OpenCV로 비디오 해상도 변경하는 방법


OpenCV의 set() 함수를 활용하면 비디오 프레임의 가로(너비)와 세로(높이)를 자유롭게 설정할 수 있습니다. 아래 두 줄의 코드가 바로 비디오 프레임의 크기를 지정하는 부분입니다.

  • set(CAP_PROP_FRAME_WIDTH, 320);
  • set(CAP_PROP_FRAME_HEIGHT, 240);

첫 번째 줄은 프레임의 너비를 320픽셀로 설정하고, 두 번째 줄은 높이를 240픽셀로 설정합니다. 이 두 코드가 함께 적용되면 320 x 240 해상도의 비디오 스트림이 생성됩니다. 이처럼 OpenCV를 사용하면 간단한 코드 몇 줄만으로도 비디오 해상도를 손쉽게 조절할 수 있습니다.

다음 프로그램은 기본 카메라에서 캡처한 비디오 스트림의 해상도를 변경하는 예제입니다.

예제 코드

#include<opencv2/opencv.hpp>//VideoCapture 클래스를 사용하기 위한 OpenCV 헤더//
#include<iostream>
using namespace std;
using namespace cv;
int main() {
   Mat myImage;//프레임을 저장할 행렬 선언//
   namedWindow("Video Player");//비디오를 출력할 창 선언//
   VideoCapture cap(0);//기본 카메라에서 프레임 스트림을 캡처하는 객체 생성//
   cap.set(CAP_PROP_FRAME_WIDTH, 320);//비디오 너비 설정
   cap.set(CAP_PROP_FRAME_HEIGHT, 240);//비디오 높이 설정//
   if (!cap.isOpened()){ //비디오 스트림을 찾지 못하면 에러 메시지 출력//
      cout << "No video stream detected" << endl;
      system("pause");
      return-1;
   }
   while (true){ //비디오를 계속 재생하기 위한 무한 루프//
      cap >> myImage;
      if (myImage.empty()){ //프레임이 감지되지 않으면 루프 종료//
         break;
      }
      imshow("Video Player", myImage);//비디오 화면에 출력//
      char c = (char)waitKey(25);//프레임 처리 시간 25밀리초 허용 및 종료 조건 확인//
      if (c == 27){ //'Esc' 키 입력 시 루프 종료//
         break;
      }
   }
   cap.release();//버퍼 메모리 해제//
   return 0;
}

이 프로그램을 실행하면 카메라 영상이 320 x 240 해상도로 재생됩니다.