Python OpenCV实时读取USB摄像头画面并获取分辨率
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()
代码解释:
- 导入OpenCV库:
import cv2 - 打开摄像头: 使用
cv2.VideoCapture(0)打开默认摄像头。如果有多个摄像头,可以通过更改索引值(0, 1, 2...)选择不同的摄像头。 - 检查摄像头是否打开: 使用
cap.isOpened()检查摄像头是否成功打开。 - 读取视频帧: 在
while循环中使用cap.read()读取一帧图像。ret表示是否成功读取到帧,frame是读取到的图像帧。 - 获取分辨率: 使用
frame.shape获取图像帧的高度、宽度和通道数。我们只关心宽度和高度,所以使用_忽略通道数。 - 打印分辨率: 使用
print函数打印图像分辨率。 - 显示图像: 使用
cv2.imshow('Video', frame)显示图像帧。 - 退出循环: 当按下键盘上的'q'键时,退出
while循环。 - 释放资源: 使用
cap.release()释放摄像头资源,并使用cv2.destroyAllWindows()关闭所有OpenCV窗口。
希望这篇博客文章能够帮助您使用OpenCV库读取USB摄像头的实时视频流,并获取图像分辨率。如果您有任何问题,请随时在评论区留言。
原文地址: http://www.cveoy.top/t/topic/cOxX 著作权归作者所有。请勿转载和采集!