功能性模块:(6)视频切割成图片:OpenCV版
一、模块介绍
这个其实是功能性模块(5)的反向过程,主要的目的是将视频抽成图片,这样便于逐帧分析,或者进行其他应用,这个看小伙伴们需求。
二、代码实现
defVideo2Frame(videopath):""" :param video_root: 视频的根目录 :return: """video_names=os.listdir(videopath)forvideo_nameinvideo_names:count=1frame_path=videopath+video_name[0:-4]ifnotos.path.exists(frame_path):os.makedirs(frame_path)ifvideo_name[-4:]=='.asf'orvideo_name[-4:]=='.mp4'\orvideo_name[-4:]=='.avi'orvideo_name[-4:]=='.mkv':cap=cv2.VideoCapture(videopath+'/'+video_name)# print cap.isOpened()ifcap.isOpened():rval,frame=cap.read()else:rval=Falsewhilerval:# frame=cv2.resize(frame,(320,180))cv2.imwrite(frame_path+"/%05d"%count+'.jpg',frame)rval,frame=cap.read()count=count+1cap.release()这个LZ没有进行跳帧,如果需要进行抽帧,加个if。。。else的逻辑就可以啦,或者在读取的时候跳帧读就行了。