SDK - Open3DV/Xema GitHub Wiki
XEMA系列相机接口文档
版本记录
时间 | 版本 | 作者 | 描述 |
---|---|---|---|
2022.02.21 | V1.0.1 | 张观锦 | 完成9个基本函数 |
2022.03.18 | V1.0.2 | 张观锦 | 完成17个基本函数 |
2022.05.13 | V1.0.3 | 张观锦 | 完成19个基本函数 |
2022.06.16 | V1.0.4 | 张观锦 | 完成27个基本函数 |
2022.08.05 | V1.0.5 | 张观锦 | 完成29个基本函数 |
2022.09.09 | V1.0.6 | 张观锦 | 完成33个基本函数 |
2022.11.21 | V1.0.7 | 张观锦 | 完成35个基本函数(修改两个函数) |
2023.01.29 | V1.1.0 | 张观锦 | 完成37个基本函数 |
接口描述
1-33接口在头文件open_cam3d_sdk.h中,34-35接口在头文件enumerate.h中。错误码定义在camera_status.h中。
1.Connect
int DfConnect(const char* camera_id);
//函数名: DfConnect
//功能: 连接相机
//输入参数: camera_id(相机ip地址)
//输出参数: 无
//返回值: 类型(int):返回0表示连接成功;返回-1表示连接失败.
2.Disconnect
int DfDisconnect(const char* camera_id);
//函数名: DfDisconnect
//功能: 断开相机连接
//输入参数: camera_id(相机ip地址)
//输出参数: 无
//返回值: 类型(int):返回0表示断开成功;返回-1表示断开失败.
3.Get camera resolution
int DfGetCameraResolution(int* width, int* height);
//函数名: DfGetCameraResolution
//功能: 获取相机分辨率
//输入参数: 无
//输出参数: width(图像宽)、height(图像高)
//返回值: 类型(int):返回0表示获取参数成功;返回-1表示获取参数失败。
4.Capture camera data
int DfCaptureData(int exposure_num, char* ×tamp);
//函数名: DfCaptureData
//功能: 采集点云数据并阻塞至返回结果
//输入参数: exposure_num(曝光次数):1(为单曝光)、大于1为多曝光(hdr、重复曝光)。
//输出参数: timestamp(时间戳)
//返回值: 类型(int):返回0表示获取采集点云成功;返回-1表示采集点云失败。
5.Get Depth Data
int DfGetDepthData(unsigned short* depth); //函数名: DfGetDepthData
//功能: 获取深度图数据
//输入参数:无
//输出参数: depth(深度图)
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败
参数是相应图像的数据指针,调用方需要根据DfGetCameraResolution返回的结果,提前提前申请好内存空间。数据在内存中将以H(行)/W(列)/C(通道)的顺序排列。
6.Get HeightMap Data
//函数名: DfGetHeightMapData
//功能: 获取高度映射图数据
//输入参数:无
//输出参数: height_map(高度映射图)
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
参数是相应图像的数据指针,调用方需要根据DfGetCameraResolution返回的结果,提前申请好内存空间。数据在内存中将以H(行)/W(列)/C(通道)的顺序排列。
7.Get Brightness Data
int DfGetBrightnessData(unsigned short* depth);
//函数名: DfGetBrightnessData
//功能: 获取亮度图数据
//输入参数:无
//输出参数: brightness(亮度图)
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败
参数是相应图像的数据指针,调用方需要根据DfGetCameraResolution返回的结果,提前提前申请好内存空间。数据在内存中将以H(行)/W(列)/C(通道)的顺序排列。
8.Get Standard Plane Param
int DfGetStandardPlaneParam(float* R,float* T);
//函数名: DfGetStandardPlaneParam
//功能: 获取基准平面参数
//输入参数:无
//输出参数: R(旋转矩阵:3*3)、T(平移矩阵:3*1)
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
9.Get Height Map Data Base Param
int DfGetHeightMapDataBaseParam(float* R, float* T, float* height_map);
//函数名: DfGetHeightMapDataBaseParam
//功能: 获取校正到基准平面的高度映射图
//输入参数:R(旋转矩阵)、T(平移矩阵)
//输出参数: height_map(高度映射图)
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败。
10.Get Pointcloud Data
int DfGetPointcloudData(float* point_cloud);
//函数名: DfGetPointcloudData
//功能: 获取点云数据(深度图转点云)
//输入参数:无
//输出参数: point_cloud(点云)
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败
参数是相应图像的数据指针,调用方需要根据DfGetCameraResolution返回的结果,提前提前申请好内存空间。数据在内存中将以H(行)/W(列)/C(通道)的顺序排列。
11.Get calibration parameters
int DfGetCalibrationParam(struct CalibrationParam* calibration_param);
//函数名: DfGetCalibrationParam
//功能: 获取相机标定参数
//输入参数: 无
//输出参数: calibration_param(相机标定参数结构体)
//返回值: 类型(int):返回0表示获取标定参数成功;返回-1表示获取标定参数失败.
12.Set Led Current parameters
int DfSetParamLedCurrent(int led);
//函数名: DfSetParamLedCurrent
//功能: 设置LED电流
//输入参数: led(电流值)
//输出参数: 无
//返回值: 类型(int):返回0表示获取标定参数成功;返回-1表示获取标定参数失败.
13.Get Led Current parameters
int DfGetParamLedCurrent(int led);
//函数名: DfGetParamLedCurrent
//功能: 设置LED电流
//输入参数: 无
//输出参数: led(电流值)
//返回值: 类型(int):返回0表示获取标定参数成功;返回-1表示获取标定参数失败.
14.Set Hdr parameters
int DfSetParamMixedHdr(int num, int exposure_param[6], int led_param[6]);
//函数名: DfSetParamMixedHdr
//功能: 设置混合多曝光参数(最大曝光次数为6次)
//输入参数: num(曝光次数)、exposure_param[6](6个曝光参数、前num个有效)、led_param[6](6个led亮度参数、前num个有效)
//输出参数: 无
//返回值: 类型(int):返回0表示获取标定参数成功;返回-1表示获取标定参数失败.
15.Get Hdr parameters
int DfGetParamMixedHdr(int& num, int exposure_param[6], int led_param[6]);
//函数名: DfGetParamMixedHdr
//功能: 获取混合多曝光参数(最大曝光次数为6次)
//输入参数: 无
//输出参数: num(曝光次数)、exposure_param[6](6个曝光参数、前num个有效)、led_param[6](6个led亮度参数、前num个有效)
//返回值: 类型(int):返回0表示获取标定参数成功;返回-1表示获取标定参数失败.
16.Set Standard Plane parameters
int DfSetParamStandardPlaneExternal(float* R, float* T);
//函数名: DfSetParamStandardPlaneExternal
//功能: 设置基准平面的外参
//输入参数:R(旋转矩阵:3*3)、T(平移矩阵:3*1)
//输出参数: 无
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
17.Get Standard Plane parameters
int DfGetParamStandardPlaneExternal(float* R, float* T);
//函数名: DfGetParamStandardPlaneExternal
//功能: 获取基准平面的外参
//输入参数:无
//输出参数: R(旋转矩阵:3*3)、T(平移矩阵:3*1)
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
18.Set Camera Exposure Parameters
int DfSetParamCameraExposure(float exposure);
//函数名: DfSetParamCameraExposure
//功能: 设置相机曝光时间
//输入参数:exposure(相机曝光时间)
//输出参数: 无
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
19.Get Camera Exposure Parameters
int DfGetParamCameraExposure(float& exposure);
//函数名: DfGetParamCameraExposure
//功能: 获取相机曝光时间
//输入参数: 无
//输出参数:exposure(相机曝光时间)
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
20.Get Mixed Hdr Parameters
int DfGetParamMixedHdr(int& num, int exposure_param[6], int led_param[6]);
//函数名: DfGetParamMixedHdr
//功能: 获取混合多曝光参数(最大曝光次数为6次)
//输入参数: 无
//输出参数: num(曝光次数)、exposure_param[6](6个曝光参数、前num个有效)、led_param[6](6个led亮度参数、前num个有效)
//返回值: 类型(int):返回0表示获取标定参数成功;返回-1表示获取标定参数失败.
21.Set Camera Confidence Parameters
int DfSetParamCameraConfidence(float confidence);
//函数名: DfSetParamCameraConfidence
//功能: 设置相机曝光时间
//输入参数:confidence(相机置信度)
//输出参数: 无
//返回值:类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
22.Set Mixed Hdr Parameters
int DfSetParamMixedHdr(int num, int exposure_param[6], int led_param[6]);
//函数名: DfSetParamMixedHdr
//功能: 设置混合多曝光参数(最大曝光次数为6次)
//输入参数: num(曝光次数)、exposure_param[6](6个曝光参数、前num个有效)、led_param[6](6个led亮度参数、前num个有效)
//输出参数: 无
//返回值: 类型(int):返回0表示获取标定参数成功;返回-1表示获取标定参数失败.
23.Get Camera Confidence Parameters
int DfGetParamCameraConfidence(float& confidence);
//函数名: DfGetParamCameraConfidence
//功能: 获取相机曝光时间
//输入参数: 无
//输出参数:confidence(相机置信度)
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
24.Set Camera Gain Parameters
int DfSetParamCameraGain(float gain);
//函数名: DfSetParamCameraGain
//功能: 设置相机增益
//输入参数:gain(相机增益)
//输出参数: 无
//返回值:类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
25.Get Camera Gain Parameters
int DfGetParamCameraGain(float& gain);
//函数名: DfGetParamCameraGain
//功能: 获取相机增益
//输入参数: 无
//输出参数:gain(相机增益)
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
26.Set Pointcloud Smoothing Parameters
int DfSetParamSmoothing(int smoothing);
//函数名: DfSetParamSmoothing
//功能: 设置点云平滑参数
//输入参数:smoothing(0:关、1-5:平滑程度由低到高)
//输出参数: 无
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
27.Get Pointcloud Smoothing Parameters
int DfGetParamSmoothing(int& smoothing);
//函数名: DfGetParamSmoothing
//功能: 设置点云平滑参数
//输入参数:无
//输出参数:smoothing(0:关、1-5:平滑程度由低到高)
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
28.Set Radius Filter Parameters
int DfSetParamRadiusFilter(int use,float radius,int num);
//函数名: DfSetParamRadiusFilter
//功能: 设置点云半径滤波参数
//输入参数:use(开关:1开、0关)、radius(半径)、num(有效点)
//输出参数: 无
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
29.Get Radius Filter Parameters
int DfGetParamRadiusFilter(int& use, float& radius, int& num);
//函数名: DfGetParamRadiusFilter
//功能: 获取点云半径滤波参数
//输入参数:无
//输出参数:use(开关:1开、0关)、radius(半径)、num(有效点)
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
30.Set Outlier Filter Parameters
int DfSetParamOutlierFilter(float threshold);
//函数名: DfSetParamOutlierFilter
//功能: 设置外点过滤阈值
//输入参数:threshold(阈值0-100)
//输出参数: 无
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
31.Get Outlier Filter Parameters
int DfGetParamOutlierFilter(float& threshold);
//函数名: DfGetParamOutlierFilter
//功能: 获取外点过滤阈值
//输入参数: 无
//输出参数:threshold(阈值0-100)
//返回值: 类型(int):返回0表示获取数据成功;返回-1表示采集数据失败.
32.Set Multiple Exposure Model Parameters
int DfSetParamMultipleExposureModel(int model);
//函数名: DfSetParamMultipleExposureModel
//功能: 设置多曝光模式
//输入参数: model(1:HDR(默认值)、2:重复曝光)
//输出参数:无
//返回值: 类型(int):返回0表示设置参数成功;否则失败。
33.Set Repetition Exposure Num Parameters
int DfSetParamRepetitionExposureNum(int num);
//函数名: DfSetParamRepetitionExposureNum
//功能: 设置重复曝光数
//输入参数: num(2-10)
//输出参数:无
//返回值: 类型(int):返回0表示设置参数成功;否则失败。
34.Update Device List
int DfUpdateDeviceList(int& device_num);
//函数名: DfUpdateDeviceList
//功能: 获取可连接设备数
//输入参数: device_num(设备数)
//输出参数: 无
//返回值: 类型(int):返回0表示连接成功;返回-1表示连接失败.
35.Get All Device Base Info
int DfGetAllDeviceBaseInfo(DeviceBaseInfo* pDeviceInfo, int* pBufferSize);
//函数名: DfGetAllDeviceBaseInfo
//功能: 获取设备基本信息
//输入参数: pDeviceInfo(设备信息)、pBufferSize(设备结构体内存尺寸)
//输出参数: 无
//返回值: 类型(int):返回0表示连接成功;返回-1表示连接失败.
36.Set Depth Filter Parameters
int DfSetParamDepthFilter(int use, float depth_filter_threshold);
//函数名: DfSetParamRadiusFilter
//功能: 设置深度图滤波参数
//输入参数:use(开关:1开、0关)、depth_filterthreshold(过滤的噪声阈值)
//输出参数: 无
//返回值: 类型(int):返回0表示设置参数成功;否则失败。
37.Get Depth Filter Parameters
int DfGetParamDepthFilter(int& use, float& depth_filter_threshold);
//函数名: DfSetParamRadiusFilter
//功能: 设置深度图滤波参数
//输入参数:无
//输出参数: use(开关:1开、0关)、depth_filterthreshold(距离过滤的噪声阈值)
//返回值: 类型(int):返回0表示获取参数成功;否则失败。
例程
详细请看example.cpp
属性说明
//相机标定参数结构体
struct CalibrationParam
{
//相机内参
double intrinsic[3*3];
//相机外参
double extrinsic[4*4];
//相机畸变
//<k1,k2,p1,p2,k3,k4,k5,k6,s1,s2,s3,s4>暂时只使用5个畸变参数
double distortion[1*12];
};
//设备基本信息结构体
struct DeviceBaseInfo
{
//相机内参
char mac[64];
//相机外参
char ip[64];
};
错误码
错误码 | 码值 | 描述 |
---|---|---|
DF_SUCCESS | 0 | 成功 |
DF_FAILED | -1 | 失败 |
DF_UNKNOWN | -2 | 未知命令 |
DF_BUSY | -3 | 相机占用 |
DF_NOT_CONNECT | -4 | 相机未连接 |
DF_ERROR_NETWORK | -5 | 网络出错 |
DF_ERROR_2D_CAMERA | -6 | 2d相机故障 |
DF_ERROR_INVALID_PARAM | -7 | 无效参数 |
DF_ERROR_LIGHTCRAFTER_SET_MODEL | -8 | 光机投影模式设置出错 |
DF_ERROR_LIGHTCRAFTER_SET_TRIGGEROUT | -9 | 光机触发设置出错 |
DF_ERROR_LIGHTCRAFTER_SET_CURRENT | -10 | 光机设置亮度出错 |
DF_ERROR_LIGHTCRAFTER_SET_PATTERN_ORDER | -11 | 光机条纹设置出错 |
DF_ERROR_CAMERA_STREAM | -12 | 相机操作流出错 |
DF_ERROR_CAMERA_GRAP | -13 | 相机采图出错 |
DF_FRAME_CAPTURING | -14 | 相机正在采集帧数据 |