3.10. Gen2 彩色相机Preview流
此示例显示了如何建立一个管道,该管道输出RGB摄像头的preview流,如何通过XLink连接以将其实时传输到主机,以及如何使用OpenCV在主机上显示RGB帧。
3.10.1. 演示
3.10.2. 设置
请运行以下命令来安装所需的依赖项
Warning
说明:此处安装的是第二代depthai库
python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-snapshot-local/ depthai==0.0.2.1+c9a19df719cb668e438d6eafd193cdf60a0d9354 numpy==1.19.5 opencv-python==4.5.1.48
有关更多信息,请参阅 Python API 安装指南
3.10.3. 源代码
可以在 GitHub 上找到。国内用户也可以在 gitee 上找到。
import cv2
import depthai as dai
import numpy as np
# 定义管道
pipeline = dai.Pipeline()
# 创建彩色相机流
cam_rgb = pipeline.createColorCamera()
cam_rgb.setPreviewSize(300, 300)
cam_rgb.setBoardSocket(dai.CameraBoardSocket.RGB)
cam_rgb.setResolution(dai.ColorCameraProperties.SensorResolution.THE_1080_P)
cam_rgb.setInterleaved(False)
cam_rgb.setColorOrder(dai.ColorCameraProperties.ColorOrder.RGB)
# 创建输出流
xout_rgb = pipeline.createXLinkOut()
xout_rgb.setStreamName("rgb")
cam_rgb.preview.link(xout_rgb.input)
# 管道已创建,现在将设备连接管道
with dai.Device(pipeline) as device:
# 启动管道
device.startPipeline()
# 输出队列将用于从上面定义的输出中获取rgb帧
q_rgb = device.getOutputQueue(name="rgb", maxSize=4, blocking=False)
while True:
in_rgb = q_rgb.get() # 阻止呼叫,将等待直到新数据到达
# 使用OpenCV将图像显示出来
cv2.imshow("bgr", in_rgb.getCvFrame())
# 按'q'退出程序
if cv2.waitKey(1) == ord('q'):
break
有疑问?
我们很乐意为您提供代码或其他问题的帮助。
我们的联系方式
还可以通过我们发布的视频和文章了解OAK