Python3:使用OpenCV按连续间隔截取视频帧并保存图片
import cv2
vc = cv2.VideoCapture(r'E:\Dataset\file\数据\xxx.avi') # 读入视频文件
c = 1
if vc.isOpened(): # 判断是否正常打开
rval, frame = vc.read()
else:
rval = False
timeF = 18 # 视频帧计数间隔频率
while rval: # 循环读取视频帧
rval, frame = vc.read()
if (c % timeF == 0): # 每隔timeF帧进行存储操作
# cv2.imshow('pic',frame)
# cv2.imwrite(r'E:\Dataset\file\数据\image/' + str(c) + '.jpg', frame) # imwrite在py3中无法保存中文路径
cv2.imencode('.jpg', frame)[1].tofile(r'E:\Dataset\file\数据\image/' + str(c) + '.jpg') # 存储为图像
# print('E:\Dataset\file\数据\image/' + '%06d' % c + '.jpg')
c = c + 1
cv2.waitKey(1)
vc.release()
参考:
解决 OpenCV cv2.imread()、cv2.imwrite()函数无法读取、写入以中文命名的图像文件及含有中文路径的图像文件