python基于OpenCV模块实现视频流数据切割为图像帧数据
动态视频流数据的处理可以转化为静态图像帧的处理,这样就可以在不改动图像模型的情况下实现视频流数据的处理工作,当然视频流数据也可以采用视频的处理方法来直接处理,这里今天主要是实践一下视频流数据的预处理工作,即:将视频流数据切割为图像帧数据,实践内容很简单,具体如下所示:
#!usr/bin/env python
#encoding:utf-8
'''
__Author__:沂水寒城
功能: 视频数据切割成图像数据
'''
import os
import cv2
import numpy as np
import cv2.cv as cv
def cutVedios2Pictures(vedio_path='FR.mp4',saveDir='pictures/myself/'):
'''
视频流数据切割成图片数据
'''
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='vedios/cat_dog.mp4',saveDir='pictures/cat_dog/')
测试数据是在网上找的一个Kaggle图像分类比赛猫狗大战的神经网络模型示意图,结果如下:
一共切割得到了126帧图像数据,还是蛮有意思的。