gpt4 book ai didi

python - 我想使用 python opencv 模块以特定时间间隔保存视频帧

转载 作者:太空宇宙 更新时间:2023-11-03 21:41:04 27 4
gpt4 key购买 nike

我想使用 python opencv 模块以特定时间间隔保存视频帧。

我必须将视频文件分成 40 张图像。但我没想到算法。

我的想法是:

  1. 输入视频文件。
  2. 计算视频中的帧数和 fps。
  3. 返回帧之间的间距。 (长度/40)
  4. 一边跑

帧数、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

我遇到了两个问题:

  1. 总长度不超过30帧的视频
  2. 没有像3.25帧那样的帧(只有3帧,不是 float )

无论如何,如果你对我的问题感兴趣,我会详细教你。我不知道该说什么。

重要的是我想定期保存40张图片,不管图片的长度。

请帮帮我兄弟...

最佳答案

There is not frame like 3.25 frame(there is just 3 frame, not float number)

如果你制作jump一个 float ,然后只需将您的条件更改为 count % jump < 1 .帧之间的间距会不均匀,但每种情况下最终应该有 40 帧。

A video with a total length of less than 30 frames.

只需设置jump如果帧数 <= 40,则为 1,您将获得所有可用帧。

关于python - 我想使用 python opencv 模块以特定时间间隔保存视频帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52534753/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com