Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++를 사용하여 OpenCV에서 비디오의 해상도를 어떻게 변경할 수 있습니까?

<시간/>

OpenCV의 'set()' 클래스를 사용했습니다. 'set()' 클래스를 사용하여 프레임의 높이와 너비를 설정할 수 있습니다. 다음 줄은 우리 프로그램에서 비디오의 높이와 너비를 설정합니다.

  • 세트(CAP_PROP_FRAME_WIDTH, 320);
  • 세트(CAP_PROP_FRAME_HEIGHT, 240);

첫 번째 줄은 프레임의 너비를 320픽셀로 설정하고 두 번째 줄은 프레임의 높이를 240픽셀로 설정합니다. 이 두 라인은 함께 320 x 240 해상도 비디오 스트림을 형성합니다. OpenCV를 사용하여 간단하게 동영상의 해상도를 변경할 수 있는 방법입니다.

다음 프로그램은 기본 카메라에서 가져온 비디오 스트림의 해상도를 변경합니다. -

예시

#include<opencv2/opencv.hpp>//OpenCV header to use VideoCapture class//
#include<iostream>
using namespace std;
using namespace cv;
int main() {
   Mat myImage;//Declaring a matrix to load the frames//
   namedWindow("Video Player");//Declaring the video to show the video//
   VideoCapture cap(0);//Declaring an object to capture stream of frames from default camera//
   cap.set(CAP_PROP_FRAME_WIDTH, 320);//Setting the width of the video
   cap.set(CAP_PROP_FRAME_HEIGHT, 240);//Setting the height of the video//
   if (!cap.isOpened()){ //This section prompt an error message if no video stream is found//
      cout << "No video stream detected" << endl;
      system("pause");
      return-1;
   }
   while (true){ //Taking an everlasting loop to show the video//
      cap >> myImage;
      if (myImage.empty()){ //Breaking the loop if no video frame is detected//
         break;
      }
      imshow("Video Player", myImage);//Showing the video//
      char c = (char)waitKey(25);//Allowing 25 milliseconds frame processing time and initiating break condition//
      if (c == 27){ //If 'Esc' is entered break the loop//
         break;
      }
   }
   cap.release();//Releasing the buffer memory//
   return 0;
}

이 프로그램은 320 x 240 해상도로 동영상을 재생합니다.