3.25. Gen2 保存灰度相机全分辨率图片

本示例说明如何将正确的将灰度相机的1280x720p .png图片保存到磁盘。

3.25.1. 演示

3.25.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.25.3. 源代码

可以在 GitHub 上找到。国内用户也可以在 gitee 上找到。

Note

设置相机传感器分辨率:

../../../_images/oak_mono_resolution.png
cam_right.setResolution(dai.MonoCameraProperties.SensorResolution.THE_720_P)

设置图像帧率:

cam_right.setFps(40)
import time
from pathlib import Path

import cv2
import depthai as dai
import numpy as np

# 开始定义管道
pipeline = dai.Pipeline()

# 创建灰度相机流
cam_right = pipeline.createMonoCamera()
cam_right.setBoardSocket(dai.CameraBoardSocket.RIGHT)
cam_right.setResolution(dai.MonoCameraProperties.SensorResolution.THE_720_P)
cam_right.setFps(40)

# 创建输出
xout_right = pipeline.createXLinkOut()
xout_right.setStreamName("right")
cam_right.out.link(xout_right.input)

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

    # 输出队列将用于从上面定义的输出中获取灰度帧
    q_right = device.getOutputQueue(name="right", maxSize=4, blocking=False)

    # 开始存储示例之前,请确保目标路径存在
    Path('07_data').mkdir(parents=True, exist_ok=True)

    while True:
        in_right = q_right.get()  # 阻止呼叫,将等待直到新数据到达
        # 数据最初表示为1维数组,需要将其转换为HxW形式
        shape = (in_right.getHeight(), in_right.getWidth())
        frame_right = in_right.getData().reshape(shape).astype(np.uint8)
        frame_right = np.ascontiguousarray(frame_right)
        # 图像已转换并使用OpenCV的imshow方法显示
        cv2.imshow("right", frame_right)
        # 显示框架后,将其作为PNG图像存储在目标目录中
        cv2.imwrite(f"07_data/{int(time.time() * 10000)}.png", frame_right)

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

有疑问?

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

我们的联系方式

售后技术支持
oak_china_wechat

企业微信:OAK中国

售前技术和项目咨询
WeChat

微信号:13951940532

加好友请备注"OAK咨询"

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

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