如何获取视频捕获对象的每秒帧数/帧数

sla*_*der 6 java opencv timer javacv

我正在使用 videocapture 对象来捕获和处理 opencv/javacv 中的视频帧。我不知道如何获得帧速率。我想要一个在实时视频捕获期间在后台运行的计时器。它应该在检测到人脸时暂停并稍后继续。由于 haarcascade 文件的处理,每个 rame 需要很多时间来处理。如何调整帧率。

   System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
   VideoCapture camera = new VideoCapture(0);
Run Code Online (Sandbox Code Playgroud)

pra*_*411 4

您可以从 VideoCapture 中提取各种参数,例如帧速率、帧高度、帧宽度等。

cv::VideoCapture input_video;
 if(input_video.open(my_device))
 {
    std::cout<<"Video file open "<<std::endl;
 }
 else
 {
    std::cout<<"Not able to Video file open "<<std::endl;

 }
int fps = input_video.get(CV_CAP_PROP_FPS);
int frameCount = input_video.get(CV_CAP_PROP_FRAME_COUNT);
double fheight = input_video.get(CV_CAP_PROP_FRAME_HEIGHT);
double fwidth = input_video.get(CV_CAP_PROP_FRAME_WIDTH);
Run Code Online (Sandbox Code Playgroud)