Python Opencv捕获视频
先得安装这个opcv的库
注意选择的Python解释器
我这里还有一个解释器,是thonny的IDE的
装好以后可以看看版本
会发现是可以自动补全的
我们可以在本地的时候放一个图片,读取一下
import cv2
import numpy as np
首先导入我们要用的库
cap = cv2.VideoCapture(0)
接着创建一个使用的物理端口
cap= cv2.VideoCapture(0)
这一句表示调用计算机内置摄像头来获取视频,如果传入参数为1时,表示调用计算机外置摄像头,比如usb连接的摄像头等。VideoCapture对象也可以传入视频文件地址。
while(1):
# get a frame
ret, frame = cap.read()
# show a frame
cv2.imshow("capture", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
这段是写一个死循环,不停的从物理的接口接收某帧,并显示(imshow),然后等待1个单位时间,如果期间检测到了键盘输入q,则退出,即关闭窗口。
ret, frame = cap.read()
这里使用一个循环表示持续获取摄像头数据,VideoCapture对象的read()方法返回两个值。
第一个值一般为ret,它是一个布尔值,表示是否获取到了图像数据,如果获取成功返回True,获取失败返回False,这一句后可以判断ret是否为True,如果为True则向下执行,False则执行相应的操作,这样可以使得我们的应用程序更加健壮。它还有一个功能就是验证获取到的视频是否到达结尾部分。
第二个值表示获取到的一帧的图像数据。下一步我们将这个图像数据直接转化为灰度图像进行了处理。
cap.release()
cv2.destroyAllWindows()
接着释放物理的摄像头,使用函数关闭所有的窗口。
这里就演示一张照片喽
也可以这样来执行代码
PS C:\Users\yunswj\Desktop\Python学习程序> python.exe .\opencv.py
[ WARN:0] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-0ycehs0d\
opencv
\modules
\videoio\
src\cap_msmf.cpp
(434)
`anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
以上代码是q执行的中断代码
https://www.fourcc.org/codecs.php
赞 (0)