目录

OpenCV-Python 捕捉摄像头视频帧,并进行展示

通常,我们必须用摄像头捕捉实时流。OpenCV 提供了一个非常简单的接口来执行此操作,让我们从摄像头中捕捉视频(我使用笔记本电脑上的内置网络摄像头),将其转换为灰度视频并显示。只需一个简单的任务即可开始。

要捕获视频,您需要创建一个VideoCapture对象。它的参数可以是设备索引或视频文件的名称。设备索引只是指定哪个相机的数字。通常会连接一台相机(如我的情况)。所以我只是传递0(或-1)。您可以通过传递 1 来选择第二个相机,依此类推。之后,您可以逐帧捕获。但最后,不要忘记释放捕获。

本示例运行效果:

mian.py 代码:

import numpy as np
import cv2 as cv

cap = cv.VideoCapture(0)
if not cap.isOpened():
    print('无法打开该摄像头')
    exit()

while True:
    # 逐帧捕捉
    ret, frame = cap.read()
    
    # 如果帧读取正确,ret 为 True
    if not ret:
        print('无法收到视频帧数据(该视频流是否已结束?),程序正在退出')
        break
    
    # 转换该视频帧为灰度图像
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
    # 显示该帧
    cv.imshow('frame', gray)
    # 当按下键盘 q 时,退出程序
    if cv.waitKey(1) == ord('q'):
        break

# 当程序结束时,释放该摄像头资源
cap.release()
cv.destroyAllWindows()

本示例代码打包下载:

附参考教程原文:https://docs.opencv.org/4.5.5/dd/d43/tutorial_py_video_display.html


上一篇:«

下一篇: »


评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注