相机 SDK 使用手册
type
status
date
slug
summary
tags
category
icon
password
1. 概述
本文档主要是面向相机设备接入相关的开发人员(需具备软件开发能力)。目前支持M4/M4 Mega/M4 Pro/V1Pro/S2/S2/H3 系列产品,本文档主要目的是对SDK提供的API 的使用方法进行说明。Camera SDK 支持在x86架构的 Windows 操作系统,以及 X86 和 Arm 架构的 Linux 操作系统上运行。
Camera SDK 提供统一的访问控制和参数配置接口,支持同步或者异步的方式获取设备数据(包括深度图、强度图、点云图、RGB 图),部分相机型号支持避障、对接、定位等数据。
本文档在最大范围内提供开发帮助,提供的内容可能存在瑕疵或者不完整。
2. 环境搭建
2.1 主机推荐系统配置
配置项 | 推荐配置 |
操作系统 | Windows7 Windows10 Windows11Ubuntu16.04 及以上 |
内存 | 4G 及以上 |
CPU | 4 核 Cortex-A57 或同等配置及以上 |
网卡 | 千兆及以上 |
2.2 环境搭建
2.2.1 硬件环境搭建
相机外接 24V 电压,并使用网线与上位机所在的主机连接,如图2.1所示。
图 2.1 相机连接示意图
2.2.2 网络环境搭建
- 相机默认 IP 网段为:192.168.100.*
- 在上位机将与相机相连网口的 IP 地址设置为 192.168.100.x 网段的某个地址并保证和设备不冲突,子网掩码为 255.255.255.0,如下图所示:
- 连接相机时建议关闭防火墙防止相机数据包被 SDK 所在主机拦截,如下图所示:
- Linux 系统网络配置同 windows,防火墙关闭的方法不同系统可能会有一定差异,以 ubuntu 为例:
- 停止防火墙服务:sudo systemctl stop ufw.service
- 禁用防火墙服务:sudo systemctl disable ufw.service查看防火墙服务是否关闭:sudo ufw status
2.2.3 软件环境搭建
2.2.3.1 Windows 系统安装:
打开安装包,安装 Lanxin-MRDVS-xxx.exe.如果需要为所有用户安装需要管理员权限运行安装包。如下图为安装流程。


2.2.3.2 Linux 系统安装:
- 解压并执行安装脚本
- tar xvf Lanxin-MRDVS-xxx.tar.gz
- cd Lanxin-MRDVS
- 因为安装需要 root 权限,如果当前用户不是 root 的话,需要切换到 root 用户
- sudo su root
- 然后再执行安装
- chmod +x install.sh
- ./install.sh
安装脚本会将 sdk 安装到/opt/Lanxin-MRDVS 目录并设置好环境变量。需要注意的是脚本中设置的环境变量是当前用户的环境变量,如果运行程序不是 root 用户,需要重新运行 install.sh 脚本设置环境变量或者手动在当前用户的~/.bashrc末尾添加 export LD_LIBRARY_PATH=/opt/Lanxin-MRDVS/lib/:$LD_LIBRARY_PATH 。
对于在安装前已经打开的终端会话需要在程序运行前再执行 source ~/.bashrc 更新 LD_LIBRARY_PATH 环境变量
3. Camera SDK 使用说明
3.1 Camera SDK 目录结构
Camera SDK 目录内容包含如下图:
- Document 包含 SDK 的各种说明文档
- FirmWare 包含相机固件升级包
- Sample 包含各种编程语言使用 Camera SDK 的示例代码
- SDK 包含 Camera SDK 的头文件以及库文件
3.2 开发流程
3.2.1 项目工程配置
推荐 C/C++作为主要的二次开发编程语言来集成 SDK,提供了通过 Cmake 工具来构建工程的 CMakeLists.txt 脚本;同时 Sample 文件夹提供了不同语言开发方法示例。具体可参考 Sample 下的资料以及《Linux 示例程序使用说明》。
3.2.2 同步方式接口调用流程
3.2.3 异步方式接口调用流程
4. Camera SDK 调用注意事项
4.1 Camera SDK 接口调用总体原则
- 枚举类型以 LX_INT 为前缀的使用DcSetIntValue 或DcGetIntValue 来设置或获取INT 类型参数;
- 枚举类型以 LX_FLOAT 为前缀的使用 DcSetFloatValue 或 DcGetFloatValue 来设置或获取 FLOAT 类型参数;
- 枚举类型以 LX_BOOL 为前缀的使用 DcSetBoolValue 或 DcGetBoolValue 来设置或获取 BOOL 类型参数;
- 枚举类型以 LX_STRING 为前缀的使用 DcSetStringValue 或 DcGetStringValue 来设置或获取字符串类型参数;
- 枚举类型以 LX_CMD 为前缀的使用 DcSetCmd 来执行指令;
- 枚举类型以 LX_PTR 为前缀的使用 DcGetPtrValue 来获取指针类型结果;
4.2 Camera SDK 接口部分调用前置条件
- 在启流状态或工作模式(LX_INT_WORK_MODE)为常开模式下, 以下功能不允许设置:
- DcSetRoi
- LX_INT_3D_BINNING_MODE;
- LX_INT_2D_BINNING_MODE;
- LX_BOOL_ENABLE_2D_TO_DEPTH;
- LX_BOOL_ENABLE_MULTI_EXPOSURE_HDR;
- LX_BOOL_ENABLE_MULTI_MACHINE;
- LX_INT_TRIGGER_MODE;
- LX_INT_CALCULATE_UP;
- LX_BOOL_ENABLE_HDR;
- LX_BOOL_ENABLE_TOF_DEPTH_CALIBE;
- LX_BOOL_ENABLE_SYNC_FRAME
- LX_INT_SAVE_PARAMS_GROUP
- 工作模式(LX_INT_WORK_MODE)为常开模式下也不允许设置:
- LX_INT_TOF_FREQMODE
- 3D 自动曝光(LX_BOOL_ENABLE_3D_AUTO_EXPOSURE)开启的情况下,不允许操作以下功能枚举:
- LX_BOOL_ENABLE_MULTI_EXPOSURE_HDR ;
- LX_INT_FIRST_EXPOSURE;
- LX_INT_SECOND_EXPOSURE;
- LX_INT_THIRD_EXPOSURE;
- LX_INT_GAIN;
- 3D 自动曝光(LX_BOOL_ENABLE_3D_AUTO_EXPOSURE)关闭的情况下,不允许操作以下功能枚举:
- LX_INT_3D_AUTO_EXPOSURE_LEVEL
不允许设置 3D 自动曝光最大值(LX_INT_3D_AUTO_EXPOSURE_MAX)和最小值
- (LX_INT_3D_AUTO_EXPOSURE_MIN)
- 2D 自动曝光(LX_BOOL_ENABLE_2D_AUTO_EXPOSURE)开启的情况下,不允许操作以下功能枚举:
- LX_INT_2D_MANUAL_EXPOSURE
- 2D 自动曝光(LX_BOOL_ENABLE_2D_AUTO_EXPOSURE)关闭的情况下,不允许操作以下功能枚举:
- LX_INT_2D_AUTO_EXPOSURE_LEVEL;
- 滤波非常规模式下,不允许设置如下:
- LX_INT_FILTER_SMOOTH_LEVEL LX_INT_FILTER_NOISE_LEVEL
- LX_INT_FILTER_TIME_LEVEL
- 开启 2D 反畸变时, 必须先开启 RGBD 对齐:
- LX_BOOL_ENABLE_2D_TO_DEPTH
- 非 S2 类型的设备,开启内置算法时需先设置 tof 算法下移开启了内置算法(LX_INT_ALGORITHM_MODE) 情况下, 才允许设置算法参数
- (LX_STRING_ALGORITHM_PARAMS)
10 要 获 取 点 云 数 据 (LX_PTR_XYZ_DATA),必 须 要 先 开 启 深 度 图
- (LX_BOOL_ENABLE_3D_DEPTH_STREAM)
5. 数据类型说明
5.1 LX_STATE
功能:SDK 接口函数返回值状态码
关键字 | 说明 |
LX_SUCCESS | 函数执行成功 |
LX_ERROR | 函数执行失败 |
LX_E_NOT_SUPPORT | 所连接的相机不支持该功能 |
LX_E_NETWORK_ERROR | 网络通讯错误 |
LX_E_INPUT_ILLEGAL | 函数参数传入非法 |
LX_E_RECONNECTING | 设备重连中 |
LX_E_DEVICE_ERROR | 设备故障 |
LX_E_DEVICE_NEED_UPDATE | 设备版本过低,需升级固件版本 |
LX_E_API_NEED_UPDATE | API 版本过低,需升级 SDK |
LX_E_CTRL_PERMISS_ERROR | 独占控制权限失败(设备同时只能一个 SDK连接) |
LX_E_GET_DEVICEINFO_ERROR | 获取设备信息失败 |
LX_E_IMAGE_SIZE_ERROR | 图像尺寸不匹配,重新打开相机 |
LX_E_IMAGE_PARTITION_ERROR | 图像解析失败 |
LX_E_DEVICE_NOT_CONNECTED | 相机未连接 |
LX_E_DEVICE_INIT_FAILED | 相机初始化失败 |
LX_E_DEVICE_NOT_FOUND | 未找到匹配的相机 |
LX_E_FILE_INVALID | 文件错误(文件名或类型或格式不正确) |
LX_E_CRC_CHECK_FAILED | 文件 crc 或 md5 校验失败 |
LX_E_TIME_OUT | 超时 |
LX_E_FRAME_LOSS | 漏帧 |
LX_E_ENABLE_ANYSTREAM_FAILED | 开启任意流失败 |
LX_E_NOT_RECEIVE_STREAM | 未收到流数据 |
LX_E_PARSE_STREAM_FAILED | 启流成功但解析流数据失败 |
LX_E_PROCESS_IMAGE_FAILED | 图像计算处理失败 |
LX_E_SETTING_NOT_ALLOWED | 常开模式下不允许设置 |
LX_E_LOAD_DATAPROCESSLIB_ERROR | 加载图像处理算法库错误 |
LX_E_FUNCTION_CALL_LOGIC_ERROR | 函数调用逻辑错误 |
LX_E_IPAPPDR_UNREACHABLE_ERROR | IP 不可达或网络配置错误 |
LX_E_FRAME_ID_NOT_MATCH | 超时范围内帧不同步错误 |
LX_E_FRAME_MULTI_MACHINE | 帧中检测到多机干扰信号 |
5.2 LX_DATA_TYPE
功能:数据格式。3D 强度图和深度图有不同的数据格式,获取数据指针需要使用对应的 feature
关键字 | 说明 |
LX_DATA_UNSIGNED_CHAR | 无符号字符型 |
LX_DATA_UNSIGNED_SHORT | 无符号短整型 |
LX_DATA_SIGNED_SHORT | 有符号短整型 |
LX_DATA_FLOAT | 浮点型 |
LX_DATA_OBSTACLE | 避障算法结构体类型 |
LX_DATA_PALLET | 托盘算法结构体类型 |
LX_DATA_LOCATION | 视觉定位算法结构体类型 |
LX_DATA_OBSTACLE | 避障算法 V2 结构体类型 |
5.3 LX_BINNING_MODE
功能:Bining 模式
关键字 | 说明 |
LX_BINNING_1X1 | 1x1Binning |
LX_BINNING_2X2 | 2x2Binning |
LX_BINNING_4X4 | 4x4Binning |
5.4 LX_STRUCT_LIGHT_CODE_MODE
功能:
关键字 | 说明 |
LX_CODE_NORMAL | 常规 |
LX_CODE_STATBLE | 稳定 |
LX_CODE_ENHANCE | 高精度加强 |
5.5 LX_ALGORITHM_MODE
功能:
关键字 | 说明 |
MODE_ALL_OFF | 关闭相机内置算法 |
MODE_AVOID_OBSTACLE | 内置避障算法 |
MODE_PALLET_LOCATE | 内置托盘算法 |
MODE_VISION_LOCATION | 内置视觉定位算法 |
MODE_AVOID_OBSTACLE2 | 内置避障算法 V2 |
5.6 LX_CAMERA_WORK_MODE
功能:
关键字 | 说明 |
KEEP_HEARTBEAT | 心跳模式,SDK 心跳中断后相机进入待机状态 |
WORK_FOREVER | 常开模式, 相机始终保持工作状态 |
5.7 LX_TRIGGER_MODE
功能:
关键字 | 说明 |
LX_TRIGGER_MODE_OFF | 关闭触发模式,流模式,默认 |
LX_TRIGGER_SOFTWARE | 软触发模式 |
LX_TRIGGER_HARDWARE | 硬触发模式 |
5.8 LX_CAMERA_FEATURE
功能:各种可读、可写参数
5.8.1 int 型参数
5.8.1.1 通用参数
关键字 | 说明 |
LX_INT_FIRST_EXPOSURE | 曝光值,单位 us, 针对多积分情况为第一个积分的曝光时间 |
LX_INT_SECOND_EXPOSURE | 针对多积分情况为第二个积分的曝光时间 |
LX_INT_THIRD_EXPOSURE | 针对多积分情况为第三个积分的曝光时间,部分型号支持 |
LX_INT_FOURTH_EXPOSURE | 针对多积分情况为第四个积分的曝光时间,部分型号支持 |
LX_INT_GAIN | 增益,与曝光效果等价。会引入噪声,可适当调节增益防止曝光参数过大 |
LX_INT_MIN_DEPTH | 最小深度值,超出范围的值置为无效 |
LX_INT_MAX_DEPTH | 最大深度值,超出范围的值置为无效 |
LX_INT_MIN_AMPLITUDE | 有效信号最小强度值,超出范围深度值置为无效 |
LX_INT_MAX_AMPLITUDE | 有效信号最大强度值,超出范围深度值置为无效 |
LX_INT_CODE_MODE | 结 构 光 相 机 编 码 模 式 , 参 考CODE_MODE(部分型号支持) |
LX_INT_WORK_MODE | 工作模式,参考 LX_CAMERA_WORK_MODE |
LX_INT_LINK_SPEED | 协商的网卡网速 100-百兆,1000-千兆, 只支持获取,不可设置 |
LX_INT_TOF_GLOBAL_OFFSET | TOF 深度数据偏移 |
LX_INT_ALGORITHM_MODE | 内置算法开启模式, 部分型号支持,对应的值参考 LX_ALGORITHM_MODE |
LX_INT_TRIGGER_MODE | 触 发 模 式 , 对 应 的 值 参 考LX_TRIGGER_MODE |
LX_INT_MODBUS_ADDR | modbus 地址,部分型号支持 MODBUS 协议通过串口输出 |
LX_INT_HEART_TIME | 心跳时间,相机超时未收到心跳会自动待机 |
LX_INT_GVSP_PACKET_SIZE | GVSP 单包数据分包大小, 单位字节 |
LX_INT_CALCULATE_UP | 允许 tof 或 rgb 算法上下移,节省上位机或相机算力,可能影响帧率和延时 |
LX_INT_CAN_BAUD_RATE | can 的波特率值, 单位 bps |
LX_INT_SAVE_PARAMS_GROUP | 将相机当前配置保存为指定的参数组 |
LX_INT_LOAD_PARAMS_GROUP | 一键加载指定索引的参数组 |
5.8.1.2 3D 图像参数
关键字 | 说明 |
LX_INT_3D_IMAGE_WIDTH | 3D 图像分辨率当前宽度 |
LX_INT_3D_IMAGE_HEIGHT | 3D 图像分辨率当前高度 |
LX_INT_3D_IMAGE_OFFSET_X | ROI 水平偏移像素,设置参数请用 DcSetRoI |
LX_INT_3D_IMAGE_OFFSET_Y | ROI 垂直偏移像素,设置参数请用 DcSetRoI |
LX_INT_3D_BINNING_MODE | 像素合并,参考 LX_BINNING_MODE |
LX_INT_3D_DEPTH_DATA_TYPE | 深度图像数据格式,只能获取,对应的值参考 LX_DATA_TYPE |
LX_INT_3D_AMPLITUDE_CHANNEL | 3D 强度图像通道数,与深度图通道共用 |
LX_INT_3D_AMPLITUDE_DATA_TYPE | 强度图像数据格式,只能获取,对应的值参考 LX_DATA_TYPE |
LX_INT_3D_AUTO_EXPOSURE_LEVEL | 3D 自动曝光开启时的曝光等级,期间不允许设置曝光值与增益 |
LX_INT_3D_AUTO_EXPOSURE_MAX | 3D 自动曝光上限值 |
LX_INT_3D_AUTO_EXPOSURE_MIN | 3D 自动曝光下限值 |
LX_INT_3D_UNDISTORT_SCALE | 3D 图像反畸变系数 |
5.8.1.4 2D 图像参数
关键字 | 说明 |
LX_INT_2D_IMAGE_CHANNEL | 2D 图像通道数,单色为 1,彩色为 3 |
LX_INT_2D_IMAGE_WIDTH | 2D 图像分辨率当前宽度 |
LX_INT_2D_IMAGE_HEIGHT | 2D 图像分辨率当前高度 |
LX_INT_2D_IMAGE_OFFSET_X | 2D 图像 ROI 水平偏移像素,只能获取,设置参数请用 DcSetRoI |
LX_INT_2D_IMAGE_OFFSET_Y | 2D 图像 ROI 垂直偏移像素,只能获取,设置参数请用 DcSetRoI |
LX_INT_2D_BINNING_MODE | 像素合并,参考 LX_BINNING_MODE |
LX_INT_2D_MANUAL_EXPOSURE | 2D 手动曝光时的曝光值 |
LX_INT_2D_MANUAL_GAIN | 2D 手动曝光时的增益值 |
LX_INT_2D_AUTO_EXPOSURE_LEVEL | 2D 图像自动曝光时曝光等级 |
LX_INT_2D_IMAGE_DATA_TYPE | 2D 图像数据格式,只能获取,对应的值参考LX_DATA_TYPE |
LX_INT_2D_UNDISTORT_SCALE | 2D 图像反畸变系数 |
5.8.1.5 触发参数
关键字 | 说明 |
LX_INT_TRIGGER_MODE | 触发模式,对应的值参考 LX_TRIGGER_MODE |
LX_INT_HARDWARE_TRIGGER_FILTER_TIME | 硬触发滤波时间, 单位 us |
LX_INT_TRIGGER_MIN_PERIOD_TIME | 触发最小时间间隔, 单位 us |
LX_INT_TRIGGER_DELAY_TIME | 触发延迟时间,单位 us, 当值<=1000 时表示立刻生效(预留功能,若大于1000 时表示延时生效) |
LX_INT_TRIGGER_FRAME_COUNT | 单次触发帧数 |
LX_INT_IO_WORK_MODE | GPIO信 号 输 出 控 制 模 式 ,参 考LX_IO_WORK_MODE |
LX_INT_IO_OUTPUT_STATE | GPIO 信 号 输 出 的 用 户 控 制 模 式 , 参 考LX_IO_OUTPUT_STATE |
5.8.1.6 滤波参数
关键字 | 说明 |
LX_INT_FILTER_MODE | 滤波模式,参考 LX_FILTER_MODE |
LX_INT_FILTER_SMOOTH_LEVEL | 当LX_INT_FILTER_MODE 为 FILTER_NORMAL 时,可设置滤波平滑等级,[0, 3],值越大,滤波越强 |
LX_INT_FILTER_NOISE_LEVEL | 当 LX_INT_FILTER_MODE 为 FILTER_NORMAL 时,可设置滤波噪声等级,[0, 3],值越大,滤波越强 |
LX_INT_FILTER_TIME_LEVEL | 当 LX_INT_FILTER_MODE 为 FILTER_NORMAL 时,可设置滤波时域等级,[0, 3],值越大,滤波越强 |
5.8.2 float 型参数
关键字 | 说明 |
LX_FLOAT_FILTER_LEVEL | 滤波等级,0-1,值越大滤波强度越高 |
LX_FLOAT_EST_OUT_EXPOSURE | 是否评估过曝数据,0-1,为 1 则过曝数据无效 |
LX_FLOAT_LIGHT_INTENSITY | 光强度,部分型号支持 |
LX_FLOAT_3D_DEPTH_FPS | 深度图当前帧率 |
LX_FLOAT_3D_AMPLITUDE_FPS | 强度图当前帧率 |
LX_FLOAT_2D_IAMGE_FPS | RGB 图当前帧率 |
LX_FLOAT_DEVICE_TEMPERATURE | 获取当前相机温度 |
5.8.3 bool 型参数
关键字 | 说明 |
LX_BOOL_CONNECT_STATE | 当前连接状态 |
LX_BOOL_ENABLE_3D_DEPTH_STREAM | 开启/关闭深度图(部分相机支持) |
LX_BOOL_ENABLE_3D_AMP_STREAM | 开启/关闭强度图(部分相机支持) |
LX_BOOL_ENABLE_3D_AUTO_EXPOSURE | 3D 自动曝光使能 |
LX_BOOL_ENABLE_3D_UNDISTORT | 3D 反畸变使能 |
LX_BOOL_ENABLE_BACKGROUND_AMP | 强度背景光使能 |
LX_BOOL_ENABLE_ANTI_FLICKER | 抗频闪使能,LED 环境照明可能导致数据存在明显波纹,部分型号支持 |
LX_BOOL_ENABLE_2D_STREAM | 开启/关闭 RGB |
LX_BOOL_ENABLE_2D_AUTO_EXPOSURE | 2D 自动曝光使能 |
LX_BOOL_ENABLE_2D_UNDISTORT | 2D 反畸变使能 |
LX_BOOL_ENABLE_2D_TO_DEPTH | RGBD 坐标对齐使能 |
LX_BOOL_ENABLE_MULTI_MACHINE | 多机模式使能,部分型号支持 |
LX_BOOL_ENABLE_MULTI_EXPOSURE_HDR | HDR(多曝光高动态范围模式)使能 |
LX_BOOL_ENABLE_SYNC_FRAME | 是否开启强制帧同步, 默认数据实时性优先,若需要 RGBD 同步, 需要开启该模式 |
5.8.4 string 型参数
关键字 | 说明 |
LX_STRING_DEVICE_VERSION | 设备版本号 |
LX_STRING_FIRMWARE_NAME | 固件文件名,用于升级设备版本,只能设置 |
LX_STRING_FILTER_PARAMS | 滤波算法参数,json 格式的字符串 |
LX_STRING_ALGORITHM_PARAMS | 内置算法参数,不同的开启模式,对应不同的 json 格式字符串,前提需要设置过 LX_ALGORITHM_MODE |
LX_STRING_ALGORITHM_VERSION | 内置算法版本号,不同的开启模式,返回对应的版本号,只能获取,前提需要设置过 LX_ALGORITHM_MODE |
LX_STRING_DEVICE_OS_VERSION | 设备系统镜像版本号 |
LX_STRING_IMPORT_PARAMS_FROM_FILE | 从本地文件加载参数到相机 |
LX_STRING_EXPORT_PARAMS_TO_FILE | 将相机当前参数导出到本地文件 |
5.8.5 command 型参数
关键字 | 说明 |
LX_CMD_GET_NEW_FRAME | 更新一次数据,默认超时时间 1s |
LX_CMD_RETURN_VERSION | 回退上一版本 |
LX_CMD_RESTART_DEVICE | 重启相机 |
LX_CMD_WHITE_BALANCE | 自动白平衡 |
LX_CMD_RESET_PARAM | 恢复默认参数 |
5.8.6 ptr 型参数
关键字 | 说明 |
LX_PTR_2D_IMAGE_DATA | 获取 2D 图像数据指针,数据长度由 2D 图像尺寸、通道数和数据格式(LX_INT_2D_IMAGE_DATA_TYPE)确定 |
LX_PTR_3D_AMP_DATA | 获取 3D 强度图数据指针,数据长度由 3D 图像尺寸、通道数和数据格式(LX_INT_3D_AMPLITUDE_DATA_TYPE)确定 |
LX_PTR_3D_DEPTH_DATA | 获取 3D 深度图数据指针,数据长度由 3D 图像尺寸、通道数和数据格式(LX_INT_3D_DEPTH_DATA_TYPE)确定 |
LX_PTR_XYZ_DATA | 获取点云数据指针,float*类型三通道(x, y, z 为一组数 据 , 依 次 循 环 ), 数 据 长度为LX_INT_3D_IMAGE_WIDTH*LX_INT_3D_IMAGE_HEIG HT*sizeof(float)*3 |
LX_PTR_ALGORITHM_OUTPUT | 获 取 内 置 算 法 输 出 , 与 算 法 模 式 有 关 。MODE_AVOID_OBSTACLE 为 LxAvoidanceOutput 指针,MODE_PALLET_LOCATE为 LxPalletPose指 针 ,MODE_VISION_LOCATION 为参考 LxLocation 指针 |
LX_PTR_2D_INTRIC_PARAM | 获取 2D 图像内参,float*类型指针,长度固定为9*sizeof(float)(fx,fy,cx,cy,k1,k2,p1,p2,k3) |
LX_PTR_3D_INTRIC_PARAM | 获取 3D 图像内参, float*类型指针,长度固定为9*sizeof(float)(fx,fy,cx,cy,k1,k2,p1,p2,k3) |
LX_PTR_3D_EXTRIC_PARAM | 获取 3D 图像外参,float*类型指针 ,长度固定为12*sizeof(float)(前 9 个表示旋转矩阵,后 3 个表示平移向量) |
LX_PTR_FRAME_DATA | 获取完整一帧数据,输出结果参考结构体 FrameInfo |
5.9 LxDeviceInfo
功能:设备属性信息结构体
字段 | 类型 | 说明 |
handle | DcHandle | 设备唯一标识 |
dev_type | LX_DEVICE_TYPE | 设备类型 |
id | Char 数组 | 设备 id |
ip | Char 数组 | 设备 ip:port |
sn | Char 数组 | 设备序列号 |
mac | Char 数组 | 设备 mac 地址 |
firmware_ver | Char 数组 | 设备软件版本号 |
algor_ver | Char 数组 | 设备算法版本号 |
name | Char 数组 | 设备名称,如:camera_M3_192.168.11.13_9803 |
reserve | Char 数组 | 预留字段, 子网掩码 |
reserve2 | Char 数组 | 预留字段 2,网关 |
reserve3 | Char 数组 | 预留字段 3 |
reserve4 | Char 数组 | 预留字段 4 |
5.10 LxIntValueInfo
功能:设备属性信息结构体
字段 | 类型 | 说明 |
set_available | Bool | 当前值是否可设置, true-可设置,false-不可设置 |
cur_value | Int | 当前值 |
max_value | Int | 最大值 |
min_value | Int | 最小值 |
reserve | Int 数组 | 预留字段 |
5.11 LxFloatValueInfo
功能:设备属性信息结构体
字段 | 类型 | 说明 |
set_available | Bool | 当前值是否可设置,true-可设置,false-不可设置 |
cur_value | float | 当前值 |
max_value | float | 最大值 |
min_value | float | 最小值 |
reserve | float 数组 | 预留字段 |
5.12 LX_DEVICE_TYPE
功能:设备类型
关键字 | 说明 |
LX_DEVICE_M2 | M2 相机 |
LX_DEVICE_M3 | M3 相机 |
LX_DEVICE_M4 Pro | M4 Pro 相机 |
LX_DEVICE_M4_MEGA | M4 Mega 相机 |
LX_DEVICE_M4 | M4 相机 |
LX_DEVICE_S1 | S1 相机 |
LX_DEVICE_S2 | S2 相机 |
LX_DEVICE_I1 | I1 相机 |
LX_DEVICE_I2 | I2 相机 |
LX_DEVICE_T1 | T1 相机 |
LX_DEVICE_T2 | T2 相机 |
LX_DEVICE_H3 | H3 相机 |
LX_DEVICE_V1Pro | V1Pro 相机 |
LX_DEVICE_NULL | 预留 |
5.13 LX_OPEN_MODE
功能:设备类型
关键字 | 说明 |
OPEN_BY_INDEX | 按搜索列表中索引下标方式打开,对应的参数为索引号,当搜索到的设备列表发生变化时,选择打开的设备也会不一样 |
OPEN_BY_IP | 按搜索列表中对应ip 方式打开,对应的参数为设备ip 或ip:port |
OPEN_BY_SN | 按搜索列表中对应 sn 方式打开,对应的参数为设备 sn |
OPEN_BY_ID | 按搜索列表中对应 id 方式打开,对应的参数为设备 id |
5.14 FrameDataInfo
功能:图像显示信息结构体
字段 | 类型 | 说明 |
frame_data_type | LX_DATA_TYPE | 帧数据类型 |
frame_width | Int | 帧数据图像宽 |
frame_height | Int | 帧数据图像高 |
frame_channel | Int | 帧数据通道数 |
frame_data | Void *指针类型 | 帧数据内容 |
sensor_timestamp | Unsigned long long 类型 | sensor 出图时间戳 |
recv_timestamp | Unsigned long long 类型 | 接收完帧数据时的时间戳 |
5.15 FrameInfo
功能:数据帧信息结构体
字段 | 类型 | 说明 |
frame_state | LX_STATE | 帧数据状态 |
handle | DcHandle | 设备唯一标识 |
depth_data | FrameDataInfo 类型 | 深度图帧数据结构体 |
amp_data | FrameDataInfo 类型 | 强度图帧数据结构体 |
rgb_data | FrameDataInfo 类型 | Rgb 图帧数据结构体 |
app_data | FrameDataInfo 类型 | 算法输出结构体 |
reserve_data | Void *指针类型 | 扩展预留字段 |
6. API 说明
6.1 查找、连接与关闭相机
6.1.1 DcGetDeviceList
函数原型:
函数功能:
获取支持的相机列表。
函数参数:
- [out]devlist 查找到的相机列表
- [out]devnum 查找到的相机数量
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:内部维护内存,外部无须分配内存, 但因每次搜索前会清空原内容,故需外部保证线程安全
6.1.2 DcOpenDevice
函数原型:
函数功能:
连接设备。
函数参数:
- [in]open_mode 打开方式, 具体说明见 OpenMode
- [in]param 不同的打开方式,填写不同的参数
- [out]handle 连接成功后返回的设备句柄,后续所有接口访问都依赖该 handle
- [out]info 连接成功后返回的相机详细信息
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.1.3 DcCloseDevice
函数原型:
函数功能:
关闭设备
函数参数:
- [in]handle 设备句柄
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.2 开始取流、关闭取流
6.2.1 DcStartStream
函数原型:
函数功能:打开数据流
函数参数:
- [in]handle 设备句柄
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.2.2 DcStopStream
函数原型:
函数功能:关闭数据流
函数参数:
- [in]handle 设备句柄
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.3 读取与设置相机参数
6.3.1 DcSetIntValue
函数原型:
函数功能:
设置 int 类型参数
函数参数:
- [in]handle 设备句柄
- [in]cmd 参考 LX_CAMERA_FEATURE
- [in]value 设置参数值
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.3.2 DcGetIntValue
函数原型:
函数功能:
获取 int 类型参数
函数参数:
- [in]handle 设备句柄
- [in]cmd 参考 LX_CAMERA_FEATURE
- [out]value 返回参数结构体,参数的最大最小值、当前值等
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.3.3 DcSetFloatValue
函数原型:
函数功能:
设置 float 类型参数
函数参数:
- [in]handle 设备句柄
- [in]cmd 参考 LX_CAMERA_FEATURE
- [in]value 设置参数值
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.3.4 DcGetFloatValue
函数原型:
函数功能:
获取 float 类型参数
函数参数:
- [in]handle 设备句柄
- [in]cmd 参考 LX_CAMERA_FEATURE
- [out]value 返回参数结构体,参数的最大最小值、当前值等
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.3.5 DcSetBoolValue
函数原型:
函数功能:
设置 bool 类型参数
函数参数:
- [in]handle 设备句柄
- [in]cmd 参考 LX_CAMERA_FEATURE
- [in]value 设置参数值
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.3.6 DcGetBoolValue
函数原型:
函数功能:
获取 bool 类型参数
函数参数:
- [in]handle 设备句柄
- [in]cmd 参考 LX_CAMERA_FEATURE
- [out]value 返回参数
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.3.7 DcSetStringValue
函数原型:
函数功能:
设置 string 类型参数
函数参数:
- [in]handle 设备句柄
- [in]cmd 参考LX_CAMERA_FEATURE
- [in]value 设置参数值
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.3.8 DcGetStringValue
函数原型:
函数功能:
获取 string 类型参数
函数参数:
- [in]handle 设备句柄
- [in]cmd 参考 LX_CAMERA_FEATURE
- [out]value 返回参数,无需外部分配内存
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.3.9 DcGetPtrValue
函数原型:
函数功能:
获取指针类型参数
函数参数:
- [in]handle 设备句柄
- [in]cmd 参考 LX_CAMERA_FEATURE
- [out]value 返回参数,无需外部分配内存
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.3.10 DcSetCmd
函数原型:
函数功能:
执行对应 CMD 类型指令操作
函数参数:
- [in]handle 设备句柄
- [in]cmd 参考 LX_CAMERA_FEATURE
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.4 保存点云
6.4.1 DcSaveXYZ
函数原型:
函数功能:
保存点云,可直接调用
函数参数:
- handle 设备句柄
- filename 文件名,支持 txt,ply 和 pcd 格式。txt 格式按图像顺序保存所有数 据,ply 和 pcd 仅保存非零数据
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.5 特殊控制
6.5.1 DcSpecialControl
函数原型:
函数功能:
LX_CAMERA_FEATURE 定义之外的特殊操作
函数参数:
- [in]handle 设备句柄
- [in]param 操作
- [inout]value 设置时为对应入参,获取时为对应出参,无需外部分配内存
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.6 设置 ROI 与参数路径
6.6.1 DcSetRoI
函数原型:
函数功能:
设置 ROI 区域, 输入数值若不是 8 的整数倍,内部会自动处理为目标值最近的 8 的整倍数。设置后需要更新图像尺寸参数
函数参数:
- [in]handle 设备句柄
- [in]offsetx 起始点水平偏移像素
- [in]offsety 起始点垂直偏移像素
- [in]widthroi 目标区域的宽
- [in]heightroi 目标区域的高
- [in]type0-3D 图像 1-2D 图像
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.7 设置相机 IP
6.7.1 DcSetCameraIp
函数原型:
函数功能:
设置相机 IP 和子网掩码,网关
函数参数:
- [in]handle 设备句柄,
- [in]ip 设备IP,
- [in]netmask 子网掩码(若传空则内部默认"255.255.0.0")
- [in]gateway 网关ip(若传空则内部默认将ip 最后网段置为"1"后作为网关)
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:当未连接上设备情况下,需先通过搜索获取。若设备支持修改网关和子网掩码,则同时将网关设置为同网段,子网掩码设置为"255.255.0.0"。修改完之后设备列表会变化,需重新调用 DcGetDeviceList 接口重新获取新的设备列表
6.8 日志信息与版本信息
6.8.1 DcGetApiVersion
函数原型:
函数功能:
获取 API 版本号
函数参数:
返回值:
char 指针数据。
备注:
6.8.2 DcSetInfoOutput
函数原型:
函数功能:
设置打印信息等级
函数参数:
- [in]print_level 0:info 所有调试信息;1:warn 重要及警告类调试信息; 2:error 仅输出错误信息
- [in]enable_screen_print 是否在窗口打印
- [in]log_path log 文件保存路径(不包含日志文件名),可以为空。 Windows 默认在当前用户路径,linux 默认在/var/log 路径
- [in]language 语言(暂无用)
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.8.3 DcLog
函数原型:
函数功能:
允许用户输出调试信息到 log 文件
函数参数:
- [in]str 要输出的字符串,'\0'结尾
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.8.4 DcRegisterFrameCallback
函数原型:
函数功能:
注册数据帧回调函数,收到新的数据时自动调用
函数参数:
- [in]handle 设备句柄,
- [in]func 帧数据回调函数,
- [in]usr_data 用户自定义参数, 可传空
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.8.5 DcUnregisterFrameCallback
函数原型:
函数功能:
取消帧回调
函数参数:
- [in]handle 设备句柄,
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
6.9 设备状态回调
6.9.1 DcRegisterCameraStatusCallback
函数原型:
函数功能:
注册相机状态回调函数,相机状态变化时自动调用
函数参数:
- [in]handle 设备句柄,
- [in]func 帧数据回调函数,
- [in]usr_data 用户自定义参数, 可传空
备注:应确保传入参数有效
6.9.2 DcUnregisterCameraStatusCallback
函数原型:
函数功能:
取消相机状态注册回调
函数参数:
- [in]handle 设备句柄,
返回值:
Int 数据,该值等于 LX_SUCCESS,说明接口调用成功。
备注:应确保传入参数有效
7. 版本与更新
版本号 | 更新说明 |
2.4.16 | 1.支持 S2 相机2.新增参数导入导出和参数组切换3.新增相关功能设置 |
2.4.9 | 1.优化并增加部分功能和配置参数 2.时间戳改为 us |
2.4.2 | 支持 M4/M4 Mega/M4 Pro/V1Pro/S2/H3 相机 |
2.0.2 | 修复部分已知问题,调整部分接口与参数 |
Loading...