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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
热门推荐
7 简短的二胎祝福语
10 简短霸气女儿生日 祝福语
11 祝福语高考小众诗句简短
12 元旦祝福语20秒简短
13 老师过年祝福语大全 简短
14 一生祝福语简短
15 产检祝福语简短霸气
16 朋友店开张祝福语简短
17 生日爱情祝福语大全简短
18 朋友女儿生日祝福语 简短