Python OpenCV实时读取USB摄像头画面并获取分辨率

本篇博客文章将为您展示如何使用Python和OpenCV库从USB摄像头捕获实时视频流,并获取每一帧的分辨率。

代码示例:

import cv2

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

# 检查摄像头是否成功打开
if not cap.isOpened():
    print('无法打开摄像头')
    exit()

while True:
    # 读取一帧图像
    ret, frame = cap.read()

    # 检查是否成功读取图像
    if not ret:
        print('无法获取图像')
        break

    # 获取图像分辨率并打印
    height, width, _ = frame.shape
    print(f'图像分辨率:{width}x{height}')

    # 显示图像
    cv2.imshow('Video', frame)

    # 检查是否按下 'q' 键,如果按下则退出循环
    if cv2.waitKey(1) == ord('q'):
        break

# 关闭摄像头和窗口
cap.release()
cv2.destroyAllWindows()

代码解释:

  1. 导入OpenCV库: import cv2
  2. 打开摄像头: 使用cv2.VideoCapture(0)打开默认摄像头。如果有多个摄像头,可以通过更改索引值(0, 1, 2...)选择不同的摄像头。
  3. 检查摄像头是否打开: 使用cap.isOpened()检查摄像头是否成功打开。
  4. 读取视频帧:while循环中使用cap.read()读取一帧图像。ret表示是否成功读取到帧,frame是读取到的图像帧。
  5. 获取分辨率: 使用frame.shape获取图像帧的高度、宽度和通道数。我们只关心宽度和高度,所以使用_忽略通道数。
  6. 打印分辨率: 使用print函数打印图像分辨率。
  7. 显示图像: 使用cv2.imshow('Video', frame)显示图像帧。
  8. 退出循环: 当按下键盘上的'q'键时,退出while循环。
  9. 释放资源: 使用cap.release()释放摄像头资源,并使用cv2.destroyAllWindows()关闭所有OpenCV窗口。

希望这篇博客文章能够帮助您使用OpenCV库读取USB摄像头的实时视频流,并获取图像分辨率。如果您有任何问题,请随时在评论区留言。

Python OpenCV实时读取USB摄像头画面并获取分辨率

原文地址: http://www.cveoy.top/t/topic/cOxX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录