
利用cv2提取视频帧,可以逐帧提取,也可以跳跃读取。
cv2即OpenCV,安装命令如下:
conda install opencv
# or
pip install opencv在读取过程中,需要对文件名进行规范,通过以下命令进行填充:
.zfill(num) # num指的是填充会的位数import cv2
import os
# 要提取视频的文件名,隐藏后缀
sourceFileName = 'Fog20200313000026'
# 在这里把后缀接上
video_path = os.path.join(sourceFileName + '.mp4')
times = 0
# 提取视频的频率,每375帧提取一个
frameFrequency = 375
# 输出图片到当前目录vedio文件夹下
outPutDirName = 'vedio/' + sourceFileName + '/'
if not os.path.exists(outPutDirName):
# 如果文件目录不存在则创建目录
os.makedirs(outPutDirName)
camera = cv2.VideoCapture(video_path)
counter = 0
while True:
# 读取指定数量的帧
if counter <= 1920:
times += 1
res, image = camera.read()
if not res:
print('not res , not image')
break
if times % frameFrequency == 0:
counter += 1
cv2.imwrite(outPutDirName + str(counter).zfill(4) + '.jpg', image)
print(outPutDirName + str(counter) + '.jpg')
else:
break
print('图片提取结束')
camera.release()版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/184839.html原文链接:https://javaforall.cn