Computer >> Máy Tính >  >> Lập trình >> C ++

Làm cách nào chúng ta có thể thay đổi độ phân giải của video trong OpenCV bằng C ++?

Chúng tôi đã sử dụng lớp 'set ()' của OpenCV. Sử dụng lớp 'set ()', chúng ta có thể thiết lập chiều cao và chiều rộng của các khung. Các dòng sau đây đang đặt chiều cao và chiều rộng của video trong chương trình của chúng tôi.

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

Dòng đầu tiên đặt chiều rộng của khung thành 320 pixel và dòng thứ hai là đặt chiều cao của khung thành 240 pixel. Hai dòng này kết hợp với nhau sẽ tạo thành một luồng video có độ phân giải 320 x 240. Đây là cách chúng tôi có thể thay đổi độ phân giải của video một cách đơn giản bằng OpenCV.

Chương trình sau thay đổi độ phân giải của luồng video được chụp từ máy ảnh mặc định -

Ví dụ

#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;
}

Chương trình này sẽ phát video ở độ phân giải 320 x 240.