【问题标题】:How to find framerate of video using c++ opencv 2.4.10?如何使用 c++ opencv 2.4.10 查找视频的帧速率?
【发布时间】:2017-03-19 17:06:25
【问题描述】:

实际上,我正在尝试使用 C++ opencv 2.4.10 从视频中检测和跟踪车辆。我这样做了。现在,我想找到输出视频的帧速率。我想知道是否有任何方法找出答案。任何人都可以向我推荐任何关于此的博客或教程吗?

谢谢。

【问题讨论】:

  • 据我所知,没有开箱即用的神计算器,但它很容易实现,只需估计帧之间的时间。您可以在每帧或每 n 帧中执行此操作。然后在屏幕/控制台上输出数字。您在进行估算时需要帮助吗?
  • 您的意思是 a) 您想要测量代码从摄像机获取视频流的速率,还是 b) 您想要测量代码从摄像机写入帧的速率到磁盘文件,或者 c) 您已经录制了一个视频文件(例如 mp4)并且您想知道它的帧速率?
  • @markSetchell 我在视频中跟踪了车辆。我想要该输出视频的帧速率。
  • 如果你安装了ffmpeg,你可以使用ffprobe video.mp4,或者exiftool video.mp4

标签: c++ algorithm opencv machine-learning computer-vision


【解决方案1】:

这样的事情可能会有所帮助。

#include <iostream>
#include <opencv2/opencv.hpp> //for opencv3
#include <opencv/cv.hpp> //for opencv2

int main(int argc, const char * argv[]) {
    cv::VideoCapture video("video.mp4");
    double fps = video.get(cv::CAP_PROP_FPS);
    std::cout << "Frames per second : " << fps << std::endl;
    video.release();
    return 0;
}

【讨论】:

  • 感谢您的评论。我已经尝试过但无法正常工作。一些 .dll 文件无法找到或打开 PDB 文件。您知道任何解决方案吗?
  • @user4692891,我不熟悉windows,所以帮不了你。
  • @Murad 这是您问题的正确答案。您要么没有正确安装 OpenCV,要么没有告诉您的 IDE(Visual Studio?)在哪里可以找到 OpenCV 包含文件(头文件)、库(链接器设置)或 DLL。
【解决方案2】:

您的代码中必须有一个循环来处理所有视频。

假设你有类似这个伪代码的东西:

//code initialization
cv::VideoCapture cap("some-video-uri");

//video capture/processing loop
while (1)
{
        //here we take the timestamp
        auto start = std::chrono::system_clock::now();
        //capture the frame
        cap >> frame;
        //do whatever frame processing you are doing...
        do_frame_processing();
        //measure timestamp again
        auto end = std::chrono::system_clock::now();
        //end - start is the time taken to process 1 frame, output it:
        std::chrono::duration<double> diff = end-start;
        std::cout << "Time to process last frame (seconds): " << diff.count() 
                  << " FPS: " << 1.0 / diff.count() << "\n";
}

就是这样......考虑到以每帧为基础计算 FPS 可能会产生高度不同的结果。您应该将这个结果平均几个帧,以获得更少变化的 FPS。

【讨论】:

    猜你喜欢
    • 2020-01-07
    • 2014-05-29
    • 1970-01-01
    • 2016-04-04
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    • 2020-11-12
    相关资源
    最近更新 更多