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

Làm cách nào để lấy vị trí của khung hiện tại trong OpenCV bằng C ++?

Khung hiện tại có nghĩa là bạn đang phát video và khung hiển thị bây giờ là khung hiện tại. Nó cũng được gọi là khung hoạt động. Trong nhiều ứng dụng, bạn có thể yêu cầu lấy số lượng khung hình hiện tại.

Chương trình sau đây đọc vị trí của khung hiện tại và hiển thị nó trong cửa sổ bảng điều khiển.

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("video.mp4");//Declaring an object to load video from device//  
   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;
      int current_Frame;//Declaring an integer variable to store the position of the current frame//
      current_Frame = cap.get(CAP_PROP_POS_FRAMES);//Reading the position of current frame//
      if (myImage.empty()){ //Breaking the loop if no video frame is detected//
         break;
      }
      cout << "Current Frame Number:" << current_Frame << endl;
      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 và hiển thị vị trí của khung hiện tại trong cửa sổ bảng điều khiển.

Đầu ra

Làm cách nào để lấy vị trí của khung hiện tại trong OpenCV bằng C ++?

Làm cách nào để lấy vị trí của khung hiện tại trong OpenCV bằng C ++?