OpenCV4学习笔记(2):显示相机视频流的帧率

OpenCV4学习笔记(2):显示相机视频流的帧率

1、基础知识:

FPS是测量用于保存、显示动态视频的信息数量。通俗来讲就是指每秒变化的画面数。

在计算FPS时,需要使用的主要函数有getTickCount、getTickFrequency。而在输出图像上显示FPS水印则是使用函数putText,他们的简单介绍如下:

getTickCount函数
它返回从操作系统启动到当前所经的计时周期数。

getTickFrequency函数:
返回每秒的计时周期数。

则计算一帧用时多少秒方法:
t=(double)getTickCount() capture>>frame;
t=((double)getTickCount()-t) / getTickFrequency()//就得到经过一帧用多少秒。
则 FPS=1.0/t;//1秒除以t, 就得到一秒变换多少帧即,帧率

以下是putText()函数各项参数介绍:

void putText(Mat& img , // 图像矩阵
const string& text, // string型内容
Point org, // 字符串的坐标,以左上角为原点
int fontFace, // 字体类型
double fontScale, // 字体大小
Scalar color, // 字体颜色
int thickness = 1, // 字体粗细
int lineType = 8, // 直线类型
bool bottomLeftOrigin = false) // 不知道是什么功能

2、理论完备,以下是实现求帧率的测试程序:

#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;

int main()
{
    Mat frame;
    VideoCapture capture;
    capture.open(1);
    while (true)
    {
        double t = (double)getTickCount();//获得当前系统的计时间周期数
        if (!capture.isOpened())break;

        capture >> frame;//输入帧
        t = ((double)getTickCount() - t) / getTickFrequency();//求输入帧后经过的周期数/每秒系统计的周期数=一帧用时多少秒
        double fps = 1.0 / t;//求倒数得到每秒经过多少帧,即帧率

        string s = "FPS:";
        s += to_string(fps);//得到字符串FPS:XXX
        putText(frame, s, Point(5, 20), FONT_HERSHEY_COMPLEX, 0.5, Scalar(0, 0, 0));//输入到帧frame上
        imshow("Camera", frame);
        if (waitKey(1) == 27)break;
    }
    capture.release();
    return 0;
}

以上这段程序可以大致测试出相机的帧率,通过类似(time.end-time-start)/每秒周期数,算出一帧多少秒,再求倒数。得到帧率,并用putText显示到屏幕上。

程序调用相机运行结果如下:
在这里插入图片描述
以上代码我个人全部通过实验验证过的,如果有什么不对的地方,欢迎大家评论区指出。

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风吹落叶花飘荡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值