OpenCV-Python官方文档二

OpenCV-Python官⽅⽂档⼆
开始使⽤视频
⽬标
学习读取视频,显⽰视频并且保存视频。
学会从视频中捕获并显⽰。
你将会学到这些⽅法:cv2.VideoCapture() cv2.VideoWriter()
从照相机捕获视频
通常,我们必须⽤相机捕捉实时流。OpenCV为此提供了⼀个⾮常简单的接⼝。让我们从摄像机中捕捉⼀段视频(我正在使⽤笔记本电脑内置的摄像头),把它转换成灰度视频并显⽰出来。只是⼀个开始的简单任务。
要捕获视频,您需要创建⼀个VideoCapture 对象。它的参数可以是设备的索引,也可以是视频⽂件的名称。设备索引只是指定哪个照相机的数字。通常只⽤⼀个相机作为连接。所以我只通过0(或-1),你可以通过传递1等⽅式选择第⼆台相机。之后,你可以⼀帧⼀帧地捕捉。但到最后别忘了释放相机。
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
# Capture frame-by-frame
开发运维一体化ret, frame = ad()
# Our operations on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Display the resulting frame
烟花生产cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cv2.destroyAllWindows()
检查这个返回值来检查这个视频视频是否结尾。
有时,Caps可能没有初始化相机。在这种情况下,此代码显⽰错误。你可以检查它是否被cap.isOped()⽅法初始化。如果是真的就OK。否则,使⽤cap.open()打开它。
你还可以使⽤(ProId)⽅法访问此视频的⼀些特性,其中proId是0到18之间的数字。每个数字表⽰视频的⼀个属性(如果它适⽤于该视频),可以在这⾥看到完整的细节:属性标识符。其中⼀些值可以使⽤cap.set(proId,value)进⾏修改。值是您想要的新值。
例如,我可以通过(3)和(4)检查框架的宽度和⾼度。默认情况下,它为我提供了640x480。但我想把它修改成320x240。只需使⽤ret=cap.set(3,320)和ret=cap.set(4,240)。
从⽂件中播放视频
这与从相机⼀样,只是改变相机索引与视频⽂件名称,当显⽰帧的时候使⽤cv2.waitKey()控制适当的时间。如果设置太少视频将⾮常快并且如果设置太⼤视频将⾮常慢,所以25毫秒⼀帧是推荐的并且相当的OK。
import numpy as np
废钯碳回收钯技术
import cv2
cap = cv2.VideoCapture('vtest.avi')
包装箱制作while(cap.isOpened()):
ret, frame = ad()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
复合柴油
break
cv2.destroyAllWindows()
保存视频
如果我们捕捉视频并且通过⼀帧⼀帧的⽅式去保存视频,对于图像来说保存图⽚是⾮常简单的,仅仅使⽤cv2.imwrite().⽅法就可以。对于视频来说就需要有点绕弯。
我们创建⼀个VideoWriter 对象。指定输出⽂件名(例如:output.avi)。然后指定FourCC代码(下⼀段中的详细信息)指定应该传递每秒帧数(Fps)和帧⼤⼩。最后⼀个是isColor 颜⾊标志。如果它是True,菜帧,否则以灰度帧⼯作。
FourCC是⼀个4字节的代码,⽤于指定视频编解码器.。可⽤代码的列表可以在中到。它依赖于平台。
FourCC code is passed as cv2.VideoWriter_fourcc('M','J','P','G') or cv2.VideoWriter_fourcc(*'MJPG) for MJPG.捕获从相机,在垂直⽅向翻转每⼀帧然后保存。
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
# Define the codec and create VideoWriter object
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
while(cap.isOpened()):
ret, frame = ad()
if ret==True:
frame = cv2.flip(frame,0)
# write the flipped frame
out.write(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
智能筷子break
# Release everything if job is finished
cv2.destroyAllWindows()

本文发布于:2024-09-24 07:15:13,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/138717.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:视频   指定   检查   代码
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议