主要功能:
将视频中的每一帧转化为图片。
1、可以设置将视频全部转化为图片
is_all_frame = True
2、可以设置只取视频的部分帧,如取3-40帧
is_all_frame = False #是否取所有的帧
sta_frame = 3 #开始帧
end_frame = 40 #结束帧
3、可以设置每隔几帧取一次图片
time_interval = 1 # 为1 则连续取
time_interval = 3 # 为3 则每隔3帧保存一次图片
设置好视频路径,和保存的路径即可正常运行
from cv2 import VideoCapture
from cv2 import imwrite
# 定义保存图片函数
# image:要保存的图片名字
# addr;图片地址与相片名字的前部分
# num: 相片,名字的后缀。int 类型
def save_image(image, addr, num):
address = addr + str(num) + '.jpg'
imwrite(address, image)
if __name__ == '__main__':
video_path = "./output/1.mp4" #视频路径
out_path = "./output/img_" #保存图片路径+名字
is_all_frame = False #是否取所有的帧
sta_frame = 1 #开始帧
end_frame = 40 #结束帧
######
time_interval = 1 #时间间隔
# 读取视频文件
videoCapture = VideoCapture(video_path)
# 读帧
success, frame = videoCapture.read()
print(success)
i = 0
j = 0
if is_all_frame:
time_interval = 1
while success:
i = i + 1
if (i % time_interval == 0):
if is_all_frame == False:
if i >= sta_frame and i <= end_frame:
j = j + 1
print('save frame:', i)
save_image(frame, out_path, j)
elif i > end_frame:
break
else:
j = j + 1
print('save frame:', i)
save_image(frame, out_path, j)
success, frame = videoCapture.read()