python opencv videocapture,python视频帧提取并保存

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: