大家好,欢迎来到IT知识分享网。
利用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://yundeesoft.com/15537.html