用opencv-python调用摄像头
时间: 2024-12-18 10:11:57 浏览: 12
在OpenCV-Python中,你可以使用`cv2.VideoCapture()`函数来连接并读取摄像头的视频流。这个函数接受一个参数,通常是数字0(对于内置摄像头)或设备路径(对于外置摄像头),然后返回一个VideoCapture对象。
以下是一个简单的例子,展示了如何打开摄像头、获取帧并显示出来:
```python
import cv2
# 打开默认摄像头
cap = cv2.VideoCapture(0)
# 检查是否成功打开
if not cap.isOpened():
print("无法打开摄像头")
else:
# 设置帧率(可选)
cap.set(cv2.CAP_PROP_FPS, 30) # 默认为30 FPS
while True:
# 读取一帧
ret, frame = cap.read()
# 如果读取成功,进行处理(例如,转换为灰度图像)
if ret:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 显示图片
cv2.imshow('Camera Feed', gray)
# 按 'q' 键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 关闭窗口并在释放摄像头后关闭
cap.release()
cv2.destroyAllWindows()
```
在这个代码中,`ret`变量表示读取操作是否成功,`frame`则是每一帧的实际像素数据。`cv2.waitKey(1)`用于暂停程序一段时间等待用户按键,按 'q' 键时跳出循环。
如果你有多个摄像头或者要访问特定的外部设备,可以通过更改`VideoCapture`构造函数中的数字来指定不同的设备ID。
阅读全文