微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

计算平均帧率的正确方法是什么?

如何解决计算平均帧率的正确方法是什么?

这个例子是用 R 语言写的,但实际上是一道数学题。

我有一个视频。我有几个连续帧的时间(tms)。它们以视频开始后的秒数为单位。

tms <- c(0.06,0.07,0.26,0.30,0.33,0.38,0.47)

我想计算视频的平均帧率。

我能想到两种方法,我无法决定哪一种更有意义。他们没有给出相同的结果,所以肯定是不准确的!

方法

mean(1/diff(tms))

32.45127

方法

1/mean(diff(tms))

14.63415

哪个是正确的,为什么另一个不正确?

解决方法

方法2是正确的。帧率通常表示为 FPS,即:

总帧数/总秒数

我们可以看到它的等价性:

tms <- c(0.06,0.07,0.26,0.30,0.33,0.38,0.47)

# total number of seconds
n_seconds <- sum(diff(tms))

# total number of frames
n_frames <- length(tms) - 1

# fps
n_frames / n_seconds
[1] 14.63415

请注意,在上面的代码中,我将 n_frames 设置为 length(tms)-1,因为 diff 函数总是生成一个向量,其条目比原始向量少一个(它是一个差分 工具)。您可以在开始时向 tms 向量添加 0。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。