opencv-python库 cv2逐帧读取视频cv2.VideoCapture()

cv2.VideoCapture 是 OpenCV(cv2)库中的一个类,用于捕获摄像头视频或读取视频文件。以下是 cv2.VideoCapture 的详细用法:

  1. 连接摄像头或读取视频文件

    创建 VideoCapture 对象:使用 cv2.VideoCapture() 函数创建一个 VideoCapture 对象。如果参数是 0 或其他非负整数,则表示打开计算机的摄像头,其中 0 通常表示默认摄像头。如果参数是视频文件的路径,则打开该视频文件。

import cv2

# 打开默认摄像头
cap = cv2.VideoCapture(0)

# 或者打开视频文件
cap = cv2.VideoCapture('path_to_video_file.mp4')
  1. 按帧读取视频

    读取帧:使用 read() 方法从 VideoCapture 对象中读取帧。该方法返回两个值:一个布尔值(表示是否成功读取帧)和一个帧对象(如果成功读取)。

ret, frame = cap.read()

# 如果 ret 为 True,表示成功读取帧
if ret:
    # 在这里处理帧,例如显示帧
    cv2.imshow('Frame', frame)
  1. 等待键盘输入

    等待键盘输入:使用 waitKey() 方法等待用户输入。该方法接受一个参数,表示等待的毫秒数。在等待期间,程序将继续显示当前帧。

# 等待 1ms,然后切换到下一帧
cv2.waitKey(1)
  1. 释放摄像头

    释放 VideoCapture 对象:在完成视频捕获后,应使用 release() 方法释放 VideoCapture 对象,以释放资源。

cap.release()
  1. 关闭所有窗口

    关闭所有窗口:使用 destroyAllWindows() 方法关闭所有由 OpenCV 创建的窗口。

cv2.destroyAllWindows()

完整示例

下面是一个完整的示例代码,演示了如何使用 cv2.VideoCapture 捕获摄像头视频并显示:

import cv2

# 创建 VideoCapture 对象
cap = cv2.VideoCapture(0)

# 检查是否成功打开摄像头
if not cap.isOpened():
    print("Error: Couldn't open the camera.")
    exit()

# 循环读取帧并显示
while True:
    # 读取帧
    ret, frame = cap.read()

    # 如果成功读取帧
    if ret:
        # 显示帧
        cv2.imshow('Camera Feed', frame)

        # 等待 1ms,然后切换到下一帧
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        print("Failed to grab frame")
        break

# 释放摄像头并关闭所有窗口
cap.release()
cv2.destroyAllWindows()

在这个示例中,程序将打开默认摄像头,并在窗口中显示实时视频流。当用户按下 “q” 键时,程序将退出循环并释放资源。

相关推荐

  1. opencv-python cv2读取视频cv2.VideoCapture()

    2024-04-06 00:26:03       14 阅读
  2. opencv-python cv2.imread() 读取图片

    2024-04-06 00:26:03       16 阅读
  3. opencv-python cv2边界填充&resize图片

    2024-04-06 00:26:03       12 阅读
  4. opencv-python cv2图像二值化详解

    2024-04-06 00:26:03       14 阅读
  5. Python-第三方cv2

    2024-04-06 00:26:03       13 阅读
  6. cv2 视频UDP传输

    2024-04-06 00:26:03       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-06 00:26:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-06 00:26:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-06 00:26:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-06 00:26:03       18 阅读

热门阅读

  1. Redission--分布式锁

    2024-04-06 00:26:03       15 阅读
  2. 快速排序(单边、双边两种)

    2024-04-06 00:26:03       14 阅读
  3. Unix消息队列实例

    2024-04-06 00:26:03       14 阅读
  4. 4月02日,每日信息差

    2024-04-06 00:26:03       10 阅读
  5. C++ primer 第十七章

    2024-04-06 00:26:03       10 阅读
  6. 3467: 【PY】整除

    2024-04-06 00:26:03       13 阅读
  7. 关于获取哔哩哔哩视频目录的方法

    2024-04-06 00:26:03       13 阅读
  8. 2024.4.5力扣刷题记录-数组类刷题记录1

    2024-04-06 00:26:03       17 阅读
  9. 远程过程调用-buttonrpc源码解析8-ZMQ网络库

    2024-04-06 00:26:03       15 阅读
  10. Hutool实现用户密码加盐(Salt)工具类

    2024-04-06 00:26:03       12 阅读
  11. 使用Bootstrap Table实现无刷新分页

    2024-04-06 00:26:03       13 阅读