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

Làm cách nào để quay video từ các máy ảnh khác trong OpenCV bằng C ++?

Trong chủ đề này, chúng tôi sẽ xác định cách sử dụng OpenCV để quay video từ các máy ảnh khác. Việc truy cập các máy ảnh khác với máy ảnh mặc định tương tự như việc truy cập máy ảnh mặc định. Chỉ có một điểm khác biệt đó là thay vì sử dụng 'VideoCapture cap (0)', chúng ta phải gán số camera. Số máy ảnh theo trình tự của cổng USB. Nếu máy ảnh được kết nối với cổng USB thứ ba, thì số hiệu của máy ảnh là 3.

Chương trình sau đây truy cập máy ảnh thứ ba và hiển thị luồng video thời gian thực được quay từ máy ả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(3);//Declaring an object to capture stream of frames from third camera//
   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;
      }
      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;
}

Đầu ra

Làm cách nào để quay video từ các máy ảnh khác trong OpenCV bằng C ++?