在标注数据时,经常有把视频切成一帧一帧图像的需求
#!usr/bin/env python
#encoding:utf-8
import os
import cv2
import numpy as np
#import cv2.cv as cv
def cutVedios2Pictures(vedio_path='F:/video/1.mp4',saveDir='F:/pictures/'):
'''
视频流数据切割成图片数据
'''
if not os.path.exists(saveDir):
os.makedirs(saveDir)
vc=cv2.VideoCapture(vedio_path)
c=1
if vc.isOpened():
rval,frame=vc.read()
else:
rval=False
while rval:
rval,frame=vc.read()
cv2.imwrite(saveDir+str(c)+'.jpg',frame)
c=c+1
cv2.waitKey(1)
vc.release()
if __name__=='__main__':
cutVedios2Pictures(vedio_path='F:/video/1.mp4',saveDir='F:/pictures/')
隔帧保存:
#!usr/bin/env python
#encoding:utf-8
import os
import cv2
from PIL import Image
import numpy as np
#import cv2.cv as cv
def cutVedios2Pictures(vedio_path='F:/video/1.mp4',saveDir='F:/pictures/'):
'''
视频流数据切割成图片数据
'''
if not os.path.exists(saveDir):
os.makedirs(saveDir)
vc=cv2.VideoCapture(vedio_path)
c=1
if vc.isOpened():
rval,frame=vc.read()
else:
rval=False
timeF = 20 # 视频帧计数间隔频率
while rval:
rval,frame=vc.read()
if(c%timeF == 0):
cv2.imwrite(saveDir+str(c)+'.jpg',frame)
c=c+1
cv2.waitKey(1)
vc.release()
if __name__=='__main__':
cutVedios2Pictures(vedio_path='F:/video/VID_20210609_110031.mp4',saveDir='F:/pictures3/')