Python Opencv捕获视频

2021-03-12 11:43:47 浏览数 (1)

先得安装这个opcv的库

注意选择的Python解释器

我这里还有一个解释器,是thonny的IDE的

装好以后可以看看版本

会发现是可以自动补全的

我们可以在本地的时候放一个图片,读取一下

代码语言:javascript复制
import cv2
import numpy as np

首先导入我们要用的库

代码语言:javascript复制
cap = cv2.VideoCapture(0)

接着创建一个使用的物理端口

cap= cv2.VideoCapture(0)

这一句表示调用计算机内置摄像头来获取视频,如果传入参数为1时,表示调用计算机外置摄像头,比如usb连接的摄像头等。VideoCapture对象也可以传入视频文件地址。

代码语言:javascript复制
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则执行相应的操作,这样可以使得我们的应用程序更加健壮。它还有一个功能就是验证获取到的视频是否到达结尾部分。

第二个值表示获取到的一帧的图像数据。下一步我们将这个图像数据直接转化为灰度图像进行了处理。

代码语言:javascript复制
cap.release()
cv2.destroyAllWindows()

接着释放物理的摄像头,使用函数关闭所有的窗口。

这里就演示一张照片喽

也可以这样来执行代码

代码语言:javascript复制
PS C:UsersyunswjDesktopPython学习程序> python.exe .opencv.py
[ WARN:0] global C:UsersappveyorAppDataLocalTemp1pip-req-build-0ycehs0d
opencv
modules
videoio
srccap_msmf.cpp 
(434) 
`anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback

以上代码是q执行的中断代码

代码语言:javascript复制
https://www.fourcc.org/codecs.php

0 人点赞