【发布时间】:2018-09-27 10:20:26
【问题描述】:
我想使用 python opencv 模块以特定时间间隔保存视频帧。
我必须将视频文件分成 40 个图像。 但我不考虑算法。
我的想法是:
- 输入视频文件。
- 计算视频中的帧数和 fps。
- 返回帧之间的间距。 (长度 / 40)
- 边跑边跑
帧数、fps、跳跃间隔的统计方法:
length = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
fps = cap.get(cv2.CAP_PROP_FPS)
统计帧数、fps和跳转后(示例):
D:\UCF-101\ApplyEyeMakeup\v_ApplyEyeMakeup_g01_c01.avi's FPS : 25.0
D:\UCF-101\ApplyEyeMakeup\v_ApplyEyeMakeup_g01_c01.avi's Length : 164
D:\UCF-101\ApplyEyeMakeup\v_ApplyEyeMakeup_g01_c01.avi's Running time : 6.56
D:\UCF-101\ApplyEyeMakeup\v_ApplyEyeMakeup_g01_c01.avi's jump : 4 ( 4.1 )
这是while循环:
while count < length and save < 40:
print("Count : ", count)
success, frame = cap.read()
cv2.imshow('Window', frame)
if count % jump == 0:
cv2.imwrite(save_path + LabelList[LabelNumber] + "\\" + FileList[FileNumber] + "_" + str(count) + ".jpg", frame)
save = save + 1
print("Saved! : ", save)
cv2.waitKey(1)
count = count + 1
我遇到了两个问题:
- 总长度小于 30 帧的视频
- 没有像3.25帧这样的帧(只有3帧,不是浮点数)
不管怎样,如果你对我的问题感兴趣,我会详细教你。 我不知道该说什么。
重要的是,无论图像的长度如何,我都想定期保存 40 张图像。
请帮帮我兄弟...
【问题讨论】:
标签: python opencv video-capture opencv-python