为什么scikit-image将视频帧数返回为浮点数?

1 投票
1 回答
643 浏览
提问于 2025-04-17 16:39

我在想,为什么scikit-image会把视频的帧数返回为一个浮点数,也就是带小数点的数字。难道视频的帧数有可能是个小数吗?

这段代码...

import skimage.io as io
v = io.Video('videos/intersection_cine.avi')
v.frame_count()

...返回的是17313.0

1 个回答

2

skimage.io.Video 是通过使用 OpenCV 来工作的。它在获取 frame_count(帧数)时,使用了 OpenCV 的一个叫 GetCaptureProperty 的函数。这个函数无论传入什么属性,都会返回一个双精度浮点数。

这个函数又会根据视频捕捉是如何创建的,调用另一个函数。例如,如果是基于 GStreamer 创建的,它会始终返回一个整数作为 frame_count。而如果使用的是 QuickTime,那么 frame_count 的计算方式是 movieDuration*movieFPS/1000,因此它的结果是一个浮点数。

撰写回答