python同时打开两个摄像头并显示,可以在显示界面设置选择框识别图像信息
时间: 2024-03-11 20:49:31 浏览: 102
python调用摄像头显示图像的实例
你可以使用OpenCV库同时打开两个摄像头并显示,然后在显示界面上设置选择框来识别图像信息。下面是示例代码:
```python
import cv2
# 打开第一个摄像头
cap1 = cv2.VideoCapture(0)
# 打开第二个摄像头
cap2 = cv2.VideoCapture(1)
# 定义鼠标事件的回调函数
def mouse_callback(event, x, y, flags, param):
# 如果按下左键
if event == cv2.EVENT_LBUTTONDOWN:
print('Camera 1:', cap1.read()[1][y, x])
print('Camera 2:', cap2.read()[1][y, x])
# 创建窗口并绑定鼠标事件
cv2.namedWindow('Camera 1')
cv2.setMouseCallback('Camera 1', mouse_callback)
cv2.namedWindow('Camera 2')
cv2.setMouseCallback('Camera 2', mouse_callback)
while True:
# 读取第一个摄像头的帧
ret1, frame1 = cap1.read()
# 读取第二个摄像头的帧
ret2, frame2 = cap2.read()
# 显示第一个摄像头的帧
cv2.imshow('Camera 1', frame1)
# 显示第二个摄像头的帧
cv2.imshow('Camera 2', frame2)
# 按下 q 键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头并关闭窗口
cap1.release()
cap2.release()
cv2.destroyAllWindows()
```
这段代码和之前的代码类似,不同之处在于创建了鼠标事件的回调函数,用于在鼠标点击时输出相应的像素值。在创建窗口时调用了 `cv2.setMouseCallback` 函数,将鼠标事件的回调函数绑定到窗口上。然后在回调函数中通过 `cap1.read()[1][y, x]` 和 `cap2.read()[1][y, x]` 获取对应位置的像素值,其中 `[1]` 表示获取的是帧的数据。在显示界面上可以使用鼠标左键点击选择图像信息。
阅读全文