3.15. Gen2 对OpenCV的支持

此示例显示了API,该API公开了numpy和OpenCV兼容的图像类型,以便于使用。它使用ColorCamera节点检索BGR交错的“预览”和NV12编码的“视频”帧。两者均使用函数getFrame和getCvFrame进行显示。

3.15.1. 演示

3.15.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 安装指南

这个示例还需要 mobileenetsdd blob ( mobilenet.blob 文件 )才能工作——您可以从 这里 下载它。

3.15.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(True)
cam_rgb.setColorOrder(dai.ColorCameraProperties.ColorOrder.BGR)

# 创建输出
xout_video = pipeline.createXLinkOut()
xout_video.setStreamName("video")
xout_preview = pipeline.createXLinkOut()
xout_preview.setStreamName("preview")

cam_rgb.preview.link(xout_preview.input)
cam_rgb.video.link(xout_video.input)

# 管道已定义,现在设备已连接到管道
with dai.Device(pipeline) as device:
    # 启动管道
    device.startPipeline()

    while True:
        # 获取预览和视频帧
        preview = device.getOutputQueue('preview').get()
        video = device.getOutputQueue('video').get()

        # 按原样显示“预览”图像(格式正确,未复制)
        cv2.imshow("preview", preview.getFrame())
        # 从NV12编码的视频帧中获取BGR帧以使用opencv进行显示
        cv2.imshow("video", video.getCvFrame())

        if cv2.waitKey(1) == ord('q'):
            break

有疑问?

我们很乐意为您提供代码或其他问题的帮助。

我们的联系方式

售后技术支持
oak_china_wechat

企业微信:OAK中国

售前技术和项目咨询
WeChat

微信号:13951940532

加好友请备注"OAK咨询"

欢迎到淘宝选购
taobao
OAK中国官方淘宝店

还可以通过我们发布的视频和文章了解OAK