在深度学习训练数据集时,拍摄大量照片可能会很麻烦,可以选择录视频的方式后逐帧提取图片作为数据集,同时可以扩充数据集
import cv2
#更改下三行
video_path = 'D:\dht\carroof-video.mp4' # 视频地址
output_path = 'D:/dht/SHU-JU-JI/car-roof/photo/video-photo' # 输出文件夹
interval = 2 # 每间隔10帧取一张图片
if __name__ == '__main__':
num = 1
video = cv2.VideoCapture(video_path)
fps = video.get(cv2.CAP_PROP_FPS)#帧率
frames = video.get(cv2.CAP_PROP_FRAME_COUNT)#总的帧数
print("fps=",int(fps),"frames=",int(frames))#打印一下(以上三行可以不要,写在这里是为了大概知道视频会输出多少张图片来合理的取帧的间隔)
while video.isOpened():
is_read, frame = video.read()
if is_read:
if num % interval == 1:
file_name = '%d' % num
cv2.imwrite(output_path + str(file_name) + '.png', frame)#输出图片
cv2.waitKey(1)
num += 1
else:
break