python opencv videocapture,python视频帧提取并保存
本文主要介绍cv2的使用。OpenCV中的VideoCapture函数,并使用cv2。VideoCapture可读取视频或相机,并保存帧图像或视频。感兴趣的朋友可以看看。
00-1010 I .语法:cap=cv2。视频捕获(0) II。语法:cap.isOpened () III。语法:ret,frame=cap.read () IV。语法:key=cv2.waitKey(1) V .读取摄像头并保存为视频代码演示VI。
目录
注意:参数0默认表示笔记本第一个内置摄像头。如果需要读取已有的视频,参数会改为视频所在的路径,例如:cap=cv2 . video capture( video . MP4 )。
一、语法:cap = cv2.VideoCapture(0)
描述:判断是否成功读取视频对象,成功读取视频对象返回True。
二、语法:cap.isOpened()
注意:逐帧读取视频,返回值ret为Boolean,如果读取正确,则返回True,如果读取失败或读取了视频的结尾,则返回False。Frame是每一帧的图像,其中图像是三维矩阵,即frame.shape=(640,480,3),读取的图像是BGR格式。
三、语法:ret,frame = cap.read()
注意:等待键盘输入,参数1表示延迟1ms切换到下一帧,参数0表示显示当前帧,相当于暂停。
四、语法:key = cv2.waitKey(1)
导入cv2
def视频捕获():
Cap=cv2。VideoCapture(0) #生成一个读取的相机对象
width=int(cap . Get(cv2 . cap _ prop _ frame _ width))#获取视频的宽度
height=int(cap . Get(cv2 . cap _ prop _ frame _ height))#获取视频的高度
Fps=cap.get(cv2。CAP_PROP_FPS) #获取视频的帧率
cc=int(cap . get(cv2 . cap _ prop _ fourcc))#视频编码
#定义视频对象输出
writer=cv2。VideoWriter(video_result.mp4 ,fourcc,fps,(width,height))
而cap.isOpened():
Ret,frame=cap.read() #读取相机屏幕
2.IM show (teswell ,frame) #显示屏
key=cv2.waitKey(24)
Writer.write(帧)#视频保存
#按Q退出
if key==ord(q):
破裂
释放相机
CV2。desroyalwindows()#释放所有显示图像的窗口
if __name__==__main__ :
视频捕获()
五、读取摄像头并保存为视频代码演示
将numpy作为np导入
导入cv2
导入操作系统
def video2image(视频目录,保存目录):
cap=cv2 . video capture(video _ dir)#生成一个读取视频对象
N=1 #计数
width=int(cap . Get(cv2 . cap _ prop _ frame _ width))#获取视频的宽度
height=int(cap . Get(cv2 . cap _ prop _ frame _ height))#获取视频的高度
Fps=cap.get(cv2。CAP_PROP_FPS) #获取视频的帧率
cc=int(cap . get(cv2 . cap _ prop _ fourcc))#视频编码
#定义视频输出
#writer=cv2。video writer( teswell video _ 02 _ result . MP4 ,fourcc,fps,(width,height))
i=0
TimeF=int(fps) #视频帧计数间隔的频率
而cap.isOpened():
Ret,frame=cap.read() #逐帧读取视频
#在视频结束时终止
如果ret为假:
破裂
#存储每个时间帧
if (n % timeF==0) :
i=1
打印(“保存图像% s“% I”)
save _ image _ dir=OS . path . join(save _ dir, %s.jpg % i )
打印(保存图像目录: ,保存图像目录)
2.imwrite (save _ image _ dir,frame) #保存视频帧图像。
n=n 1
2.等待键(1) #延迟1毫秒
释放视频对象
#读取文件夹中的所有视频,每个视频按帧保存图像。
def video2image_multi(视频路径,保存路径):
video _ list=OS . listdir(video _ path)
对于范围内的I(len(video _ list)):
video_dir=os.path.join(视频路径,视频列表[i])
cap=cv2。视频捕获(视频目录)
Fps=cap.get(cv2。CAP_PROP_FPS) #视频的帧速率
save_num=0
N=1 #计数
TimeF=int(fps) #视频帧计数间隔的频率
而cap.isOpened():
ret,frame=cap.read()
如果ret为假:
破裂
#存储每个时间帧
if (n % timeF==0) :
save_num=1
save _ image _ dir=OS . path . join(save _ path, %s_%s.jpg % (i,save_num))
cv2.imwrite(保存图像目录,帧)
n=n 1
cv2.waitKey(1)
cap.release()
打印(阅读完%s视频!% i)
if __name__==__main__ :
视频到图像(rE:AIvideo.mp4 ,rE:AIvideo2image )
这就是Python的VideoCapture读取和保存视频或相机的细节。更多关于Python的视频捕捉读取摄像机的信息,请关注盛行IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。