OpenCV中VideoCapture类的使用详解
主要记录Python-OpenCV中的VideoCapture类的使用;官方文档;
VideoCapture()是用于从视频文件、图片序列、摄像头捕获视频的类;
#!/usr/bin/envpython #-*-coding:utf-8-*- #@Time:19-4-21上午10:31 #@Author:chen """ VideoCapture()的使用 """ importcv2 importargparse importos importpdb ap=argparse.ArgumentParser() ap.add_argument("-v","--videoPath",default="./video_1.mp4",help="pathtoinputvideo") ap.add_argument("-o","--outputPath",default="grabImages",help="pathtooutputframes") args=vars(ap.parse_args()) #初始化,并读取第一帧 #rval表示是否成功获取帧 #frame是捕获到的图像 vc=cv2.VideoCapture(args["videoPath"]) rval,frame=vc.read() #获取视频fps fps=vc.get(cv2.CAP_PROP_FPS) #获取视频总帧数 frame_all=vc.get(cv2.CAP_PROP_FRAME_COUNT) print("[INFO]视频FPS:{}".format(fps)) print("[INFO]视频总帧数:{}".format(frame_all)) print("[INFO]视频时长:{}s".format(frame_all/fps)) outputPath=os.path.sep.join([args["outputPath"]]) ifos.path.exists(outputPath)isFalse: print("[INFO]创建文件夹,用于保存提取的帧") os.mkdir(outputPath) #每隔100帧保存一张图片 frame_interval=100 #统计当前帧 frame_count=1 #保存图片个数 count=0 whilerval: rval,frame=vc.read() ifframe_count%frame_interval==0: filename=os.path.sep.join([outputPath,"test_{}.jpg".format(count)]) cv2.imwrite(filename,frame) count+=1 print("保存图片:{}".format(filename)) frame_count+=1 #关闭视频文件 vc.release() print("[INFO]总共保存:{}张图片".format(count))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。