当前位置:   article > 正文

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

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. 按帧读取视频

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

ret, frame = cap.read()

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

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

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

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

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

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

cv2.destroyAllWindows()
  • 1

完整示例

下面是一个完整的示例代码,演示了如何使用 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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/680874
推荐阅读
相关标签
  

闽ICP备14008679号