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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。