【把视频逐帧转换成图片】
程序员文章站
2022-03-25 14:49:11
...
把视频逐帧转换成图片(也可以间隔几帧)
做AI检测的都知道数据集是是我们的基础,但又十分重要,俗话说:巧妇难为无米之炊,数据集就相当与樵夫手中的“米”,对后期训练的模型的好坏至关重要。做目标检测数据集时,常常需要把视频转换成图片,然后labelImg做数据集。刚开始时我用过软件Free Video to JPG Converterh和ffmpeg等,但是用起来十分不方便。
**今天分享一下使用Python和Opencv把视频转换成图片**
#-*- coding: utf-8 -*-
import cv2
import os
#把视频逐帧转换成图片 by XTX
def save_img():
video_path = r'D:/XTX/11/'#11待转视频的路径,不需要具体视频文件名,不过这里注意:视频格式为常见格式“mp4”,“avi” ;要使用“/”,by XTX
videos = os.listdir(video_path)
for video_name in videos:
file_name = video_name.split('.')[0]
folder_name = video_path + file_name
os.makedirs(folder_name,exist_ok=True)
vc = cv2.VideoCapture(video_path+video_name) #读入视频文件 by XTX
i=0
c=0
temp = 4 #设置帧间隔获取截取图片数量:temp = 4时,也就是每间隔4帧截取一张图片
rval=vc.isOpened()
while rval: #循环读取视频帧 by XTX
c = c + 1
# str(n).zfill(5)
rval, frame = vc.read()
pic_path = folder_name+'/'
if (c % temp == 0):
if rval:
i=i+1
cv2.imwrite(pic_path + str(i).zfill(5) + '.jpg', frame)#str(n).zfill(5)设置保存图片文件名格式(5位)00001~ by XTX
cv2.waitKey(1)
else:
rval=rval
#break
vc.release()
print('save_success')
print(folder_name)
save_img()
如遇到问题欢迎留言!!!
上一篇: 哪种姿势踏进公司大门