为什么scikit-image将视频帧数返回为浮点数?
我在想,为什么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
,因此它的结果是一个浮点数。