python - 使用 OpenCv 读取的视频帧数不一致
问题描述
我正在尝试从以下视频中提取帧(披露:我不是视频的所有者,视频取自公共数据集)。要获得我做的视频帧数:
cap = cv2.VideoCapture(video_path)
cap.get(cv2.CAP_PROP_FRAME_COUNT) # This returns 32
要提取帧,我有这种方法:
def obtain_frames(video_path: str):
cap = cv2.VideoCapture(video_path)
frames = []
while True:
success, image = cap.read()
if not success:
break
frames.append(image)
return frames
最后,我计算提取的视频帧数:
frames = obtain_frames(video_path)
len(frames) # This returns 17
与 相比,我得到一个不一致的数字cv2.CAP_PROP_FRAME_COUNT
。
我也知道这个 SO 问题,但是,当我显示视频时,我可以全部看完,但我无法阅读所有帧。
欢迎任何指针/方向。
解决方案
推荐阅读
- office-addins - Outlook 加载项 - 检测是否在 Outlook for Mac“新外观”中运行?
- react-native - React Native expo-location:如何让后台位置服务更新更频繁?
- c# - 无法命中包含泛型类型的 API 端点
- c++ - 在链接列表中打印最大值时输出错误
- c - 我需要使用 C 语言中 Vernam Cipher 的变体来加密文件。你能检查我的代码吗?
- eigenvector - 为什么对称矩阵的特征向量是离散的 2x2 而不是 3x3
- active-directory - 无法运行具有不同 FQDN 的 sssd + AD 域控制器
- java - 配置 OpenCV 以在 java 中使用不起作用
- sql - 如何在表格中按人选择最大日期
- xml - 动态生成xml文件