如何在opencv中计算每秒帧数?

Posted

技术标签:

【中文标题】如何在opencv中计算每秒帧数?【英文标题】:How to calculate Frame Per Second in opencv? 【发布时间】:2015-07-05 14:37:01 【问题描述】:

这是我的代码,它以高 fps 显示视频。我想要这里的原始fps,但不知道该怎么做。观看一些教程,他们正在使用 VideoCapture ,我尝试使用它,但这给了我链接器错误 undefined reference to 'cv::VideoCapture::VideoCapture(std::string const&)'.. 虽然我正在链接所有库但错误是相同的。我正在使用 Dev-C++ 5.11 (GCC 4.9.2) ,所以知道如何使用 (CV_CAP_PROP_FPS)here -

#include <windows.h>
#include <opencv/cv.hpp>
#include <opencv/highgui.h>
using namespace cv;
using namespace std;

int main( int argc, char** argv )

   double fps=0;
   cvNamedWindow( "Movie", CV_WINDOW_NORMAL );
   CvCapture* capture = cvCreateFileCapture( "G:\\movie\\Journey.2.The.Mysterious.Island.2012.avi" );
   IplImage* frame;

   //cv::VideoCapture cap("G:\\movie\\Journey.2.The.Mysterious.Island.2012.avi" ); [giving me error]
   //fps=cap.get(CV_CAP_PROP_FPS); [How to use this]

   while(1)
   
       frame = cvQueryFrame( capture );
       if( !frame ) break;
       cvShowImage( "Movie", frame );
       char c = cvWaitKey(27);
       if( c == 27 ) break; //esc
   
   cvReleaseCapture( &capture );
   cvDestroyWindow( "Movie" );

谢谢:)

【问题讨论】:

什么opencv版本? @Miki 版本 2.4.10 【参考方案1】:
double fps=cvGetCaptureProperty(capture, CV_CAP_PROP_FPS); 

【讨论】:

@uditr043 我很高兴。但是,您应该考虑使用新的 C++ 语法,首先包括 #include "opencv2\opencv.hpp" 并“基本上”删除函数和类前面的 cv... 好的,我会照着做的,谢谢 :)

以上是关于如何在opencv中计算每秒帧数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 GLFW 窗口中限制我的每秒帧数? (使用亲爱的 ImGui)

我如何从这个 jogl 程序中获得更多的每秒帧数? [关闭]

帧数和每秒帧数是一样的吗?

iOS AVFoundation 如何使用 CMTime 转换每秒相机帧数以创建延时摄影?

如何减少OpenCV python中的帧数?

画面每秒传输帧数