Python

说明

Python SDK主要使用两个工具库来方便调用

  1. requests 用于发起http请求

  2. numpy 用于矩阵数据的方便使用

  3. opencv-python 用于图像的存储

接口定义

函数名 功能解释 参数与返回值

get_sdk_version()

获取SDK版本号

参数: 无

返回值:

version: str类型 SDK版本号

get_info(ip: str)

获取相机基本信息,包括序列号、IP地址、型号等设备参数。获取失败会返回None

参数:

ip: str类型 相机的ip地址

返回值:

info: dict类型 包含以下字段:

* sn: str类型 相机序列号

* ip: str类型 相机ip地址

* model: str类型 相机型号

* alias: str类型 相机名称

* width: int类型 图像宽度

* height: int类型 图像高度

get_header(ip: str, frame_id: str, timeout: int = 2000)

获取相机照片信息,包含width,height。获取失败会返回None

参数:

ip: str类型 相机的ip地址

frame_id: str类型 相机的frameId

timeout: int类型 超时时间,默认2000ms

返回值:

header: dict类型 相机的照片信息,包含width,height

get_config(ip: str, frame_id: str = "")

获取相机当前或指定帧的配置参数,失败会返回None

参数:

ip: str类型 相机的ip地址

frame_id: str类型 待获取数据的frameID,如果为空字符串则返回最新配置

返回值:

config: dict类型 相机配置参数

set_config(ip: str, config: dict)

更新相机参数配置,成功返回当前配置,失败返回None

参数:

ip: str类型 相机ip

config: dict类型 配置参数,定义同get_config

返回值:

latest_config: dict类型 更新后的相机当前配置,定义同config

trigger_frame(ip: str, pointcloud: bool = True)

触发拍摄一个Frame,一个Frame可能同时包含2D图像和点云数据,通过frameID进行索引。失败则返回None

参数:

ip: str类型 相机ip

pointcloud: bool类型 是否请求点云数据,如果设为False,则此次触发的Frame仅包含2D图像数据

返回值:

frame_id: str类型 此次触发拍照返回的frame_id

get_image(ip: str, frame_id: str)

根据frameID获取2D图像,失败则返回None

参数:

ip: str类型 相机ip

frame_id: str类型 待获取数据的frameID,可由triggerFrame获得

返回值:

image: numpy.ndarray类型 返回的图像数据

get_point_cloud(ip: str, frame_id: str)

根据frameID获取点云,失败则返回None

参数:

ip: str类型 相机ip

frame_id: str类型 待获取数据的frameID,可由triggerFrame获得

返回值:

point_map: numpy.ndarray类型 点云数据,和2D图像逐像素对齐

get_point_cloud_with_time_stats(ip: str, frame_id: str)

根据frameID获取点云,同时返回网络传输统计信息,失败则返回None

参数:

ip: str类型 相机ip

frame_id: str类型 待获取数据的frameID,可由triggerFrame获得

返回值:

point_map: numpy.ndarray类型 点云数据,和2D图像逐像素对齐

network_transmit_time_ms: float类型 网络传输时间(ms)

network_speed_mbps: float类型 网络传输速度(Mbps)

get_image_and_point_cloud(ip: str, frame_id: str)

根据frameID获取2D图像和点云,失败则返回None

参数:

ip: str类型 相机ip

frame_id: str类型 待获取数据的frameID,可由triggerFrame获得

返回值:

image: numpy.ndarray类型 返回的图像数据

point_map: numpy.ndarray类型 点云数据,和2D图像逐像素对齐

get_image_and_point_cloud_with_time_stats(ip: str, frame_id: str)

根据frameID获取2D图像和点云,同时返回网络传输统计信息,失败则返回None

参数:

ip: str类型 相机ip

frame_id: str类型 待获取数据的frameID,可由triggerFrame获得

返回值:

image: numpy.ndarray类型 返回的图像数据

point_map: numpy.ndarray类型 点云数据,和2D图像逐像素对齐

network_transmit_time_ms: float类型 网络传输时间(ms)

network_speed_mbps: float类型 网络传输速度(Mbps)

get_depth(ip: str, frame_id: str)

根据frameID获取深度图,失败则返回None

参数:

ip: str类型 相机ip

frame_id: str类型 待获取数据的frameID,可由triggerFrame获得

返回值:

depth: numpy.ndarray类型 深度数据,和2D图像逐像素对齐

get_depth_with_time_stats(ip: str, frame_id: str)

根据frameID获取深度图,同时返回网络传输统计信息,失败则返回None

参数:

ip: str类型 相机ip

frame_id: str类型 待获取数据的frameID,可由triggerFrame获得

返回值:

depth: numpy.ndarray类型 深度数据,和2D图像逐像素对齐

network_transmit_time_ms: float类型 网络传输时间(ms)

network_speed_mbps: float类型 网络传输速度(Mbps)

get_camera_matrix(ip: str)

获取相机内参矩阵

参数:

ip: str类型 相机ip

返回值:

camera_matrix: numpy.ndarray类型 按行存储的相机矩阵,可恢复成3x3的camera matrix,与OpenCV兼容

get_distortion(ip: str)

获取相机畸变系数

参数:

ip: str类型 相机ip

返回值:

distortion: numpy.ndarray类型 相机的畸变参数,与OpenCV兼容

get_point_cloud_in_ply(ip: str, frame_id: str)

获取PLY格式的点云数据,失败则返回None

参数:

ip: str类型 相机ip

frame_id: str类型 待获取数据的frameID,可由triggerFrame获得

返回值:

ply_data: bytes类型 PLY格式的点云数据

search_camera()

搜索网络中可用的相机设备,失败或者没有搜索到则返回None

参数: 无

返回值:

found_camera: list类型 搜索到的相机信息列表

Linux运行

Debian系的Linux系统一般会自带Python环境。

可根据Python实例程序中的README.md中的步骤执行。

windows运行

参考 Python on Windows for beginners 安装Python环境。

可根据Python实例程序中的README.md中的步骤执行。