CBXS3D SDK · 采集与数据获取

版本 1.0 · 更新于 2026-10-21 · 阅读 0

采集启停、主动取帧与释放、超时、缓存、数据格式、系统时钟、激光光条阈值/宽度、亮度图阈值、帧率/触发频率/丢帧统计。

本组对应头文件 @defgroup Capture 采集。XS3D SDK 无回调,取数统一用 CBXS_CaptureData 主动取一帧,并用 CBXS_ReleaseData 释放。

CBXS_StartAcquisition

int CBXS_StartAcquisition(void* handle, int nMode = 0)

启动相机开始采集工作。

参数 方向 说明
nMode in 采集模式,当前没有实际区分意义

返回:成功返回 CBXS_RET_SUCCESS

说明

  • 启动采集后,ROI、触发模式、数据格式等部分参数将不可改动,需先 CBXS_StopAcquisition。

CBXS_StopAcquisition

int CBXS_StopAcquisition(void* handle)

停止相机采集工作。

参数 方向 说明
handle in 设备句柄

返回:成功返回 CBXS_RET_SUCCESS;失败返回错误码

CBXS_CaptureData

int CBXS_CaptureData(void* handle, CaptureData** data)

采集一帧数据。

参数 方向 说明
data out 采集到的帧数据指针(指向 CaptureData)

返回:成功返回 CBXS_RET_SUCCESS

说明

  • 仅在 CBXS_StartAcquisition 之后调用;用完必须 CBXS_ReleaseData 释放,否则内存泄漏。

CBXS_ReleaseData

int CBXS_ReleaseData(void* handle, CaptureData* data)

释放采集帧内存。

参数 方向 说明
data in 由 CBXS_CaptureData 取得的数据指针

返回:成功返回 CBXS_RET_SUCCESS

说明

  • 必须与 CBXS_CaptureData 成对调用。

CBXS_SetCaptureTimeout

int CBXS_SetCaptureTimeout(void* handle, unsigned long dwTimeOut)

设置采集超时时间(对应 CaptureData 返回的最长时间)。

参数 方向 说明
dwTimeOut in 采集超时时间,单位:毫秒

返回:成功返回 CBXS_RET_SUCCESS

说明

  • 外触发时该时间最好大于外触发可能的最大时间间隔。

CBXS_GetCaptureTimeout

int CBXS_GetCaptureTimeout(void* handle, unsigned long* pdwTimeOut)

获取采集超时时间。

参数 方向 说明
pdwTimeOut out 当前超时时间值,单位:毫秒

返回:成功返回 CBXS_RET_SUCCESS;失败返回错误码

CBXS_SetBufferNumber

int CBXS_SetBufferNumber(void* handle, int nNumber)

设置 API 轮廓的缓存数目。

参数 方向 说明
nNumber in 缓存数目

返回:成功返回 CBXS_RET_SUCCESS

说明

  • 缓存越大越能防止 PC 性能波动造成的丢帧,但占用更多内存。

CBXS_GetBufferNumber

int CBXS_GetBufferNumber(void* handle, int* pnNumber)

获取 API 轮廓的缓存数目。

参数 方向 说明
pnNumber out 缓存数目

返回:成功返回 CBXS_RET_SUCCESS;失败返回错误码

CBXS_SetDataFormat

int CBXS_SetDataFormat(void* handle, CBXS_DATA_FORMAT DataFormat)

设置 3D 图像数据格式。

参数 方向 说明
DataFormat in 3D 图像数据格式,参考 CBXS_DATA_FORMAT

返回:成功返回 CBXS_RET_SUCCESS

说明

  • 须在 CBXS_StartAcquisition 之前设置,决定 CaptureData 中哪些指针有效。

CBXS_GetDataFormat

int CBXS_GetDataFormat(void* handle, CBXS_DATA_FORMAT* pDataFormat)

获取 3D 图像数据格式。

参数 方向 说明
pDataFormat out 当前 3D 图像数据格式

返回:成功返回 CBXS_RET_SUCCESS;失败返回错误码

CBXS_GetSystemClock

int CBXS_GetSystemClock(void* handle, float* pfSysmClockMHz)

获取系统时钟频率。

参数 方向 说明
pfSysmClockMHz out 系统时钟频率,单位:MHz(1/该值即 ullTimesTamp 时间戳的时间单位,单位 μs)

返回:成功返回 CBXS_RET_SUCCESS;失败返回错误码

CBXS_Set3DLaserLineBrightnessThreshold

int CBXS_Set3DLaserLineBrightnessThreshold(void* handle, int nThreshold)

设置激光光条的灰度阈值。

参数 方向 说明
nThreshold in 灰度阈值,范围 0~255

返回:成功返回 CBXS_RET_SUCCESS

说明

  • 原始图像上灰度大于阈值的点才参与点云计算;阈值越大提取点越少,可减少噪声干扰。

CBXS_Get3DLaserLineBrightnessThreshold

int CBXS_Get3DLaserLineBrightnessThreshold(void* handle, int* pnThreshold)

获取激光光条的灰度阈值。

参数 方向 说明
pnThreshold out 灰度阈值

返回:成功返回 CBXS_RET_SUCCESS;失败返回错误码

CBXS_Set3DLaserLineBrightnessLowThreshold

int CBXS_Set3DLaserLineBrightnessLowThreshold(void* handle, int nLowThreshold)

设置激光光条的灰度低阈值(兜底阈值)。

参数 方向 说明
nLowThreshold in 灰度低阈值,范围 0~255

返回:成功返回 CBXS_RET_SUCCESS

说明

  • 计算光条中心先用正常阈值;找不到时再用该低阈值重试;低阈值应小于正常阈值才有效。

CBXS_Get3DLaserLineBrightnessLowThreshold

int CBXS_Get3DLaserLineBrightnessLowThreshold(void* handle, int* pnLowThreshold)

获取激光光条的灰度低阈值。

参数 方向 说明
pnLowThreshold out 灰度低阈值

返回:成功返回 CBXS_RET_SUCCESS;失败返回错误码

CBXS_Set3DLaserLineWidth

int CBXS_Set3DLaserLineWidth(void* handle, int nWidth)

设置激光光条的宽度阈值。

参数 方向 说明
nWidth in 激光光条宽度阈值

返回:成功返回 CBXS_RET_SUCCESS;失败返回错误码

CBXS_Get3DLaserLineWidth

int CBXS_Get3DLaserLineWidth(void* handle, int* pnWidth)

获取激光光条的宽度阈值。

参数 方向 说明
pnWidth out 激光光条宽度阈值

返回:成功返回 CBXS_RET_SUCCESS;失败返回错误码

CBXS_Set3DIntensityWidthThreshold

int CBXS_Set3DIntensityWidthThreshold(void* handle, int nThresh)

设置亮度图宽度阈值。

参数 方向 说明
nThresh in 亮度图宽度阈值;默认 4,越大亮度图越暗,越小越亮

返回:成功返回 CBXS_RET_SUCCESS;失败返回错误码

CBXS_Get3DIntensityWidthThreshold

int CBXS_Get3DIntensityWidthThreshold(void* handle, int* pnThresh)

获取亮度图宽度阈值。

参数 方向 说明
pnThresh out 亮度图宽度阈值

返回:成功返回 CBXS_RET_SUCCESS;失败返回错误码

CBXS_GetTransmissionRate

int CBXS_GetTransmissionRate(void* handle, float* pfTransmissionRate)

获取采集帧率。

参数 方向 说明
pfTransmissionRate out 采集帧率,单位:Hz(实际采集过程中轮廓数据的采集频率)

返回:成功返回 CBXS_RET_SUCCESS;失败返回错误码

CBXS_GetExternalTriggerRate

int CBXS_GetExternalTriggerRate(void* handle, float* pfTriggerRateHz)

获取轮廓触发频率。

参数 方向 说明
pfTriggerRateHz out 轮廓触发频率,单位:Hz

返回:成功返回 CBXS_RET_SUCCESS

说明

  • 内触发(CBXS_DTM_INTERNAL)时,为按内触发频率设置实际产生的触发频率;
  • 外触发(CBXS_DTM_RISING_EDGE/FALLING_EDGE/ENCODER)时,为滤波后、分频后的外触发输入频率。

CBXS_GetLostFrameStatus

int CBXS_GetLostFrameStatus(void* handle, unsigned long long* pnStartTriggerLoss, unsigned long long* pnDataTriggerLoss, unsigned long long* pnFrameBufferLoss)

获取丢帧统计信息。

参数 方向 说明
pnStartTriggerLoss out 当前 StartAcquisition 后的起始信号丢失数
pnDataTriggerLoss out 当前 StartAcquisition 后的轮廓触发丢失数
pnFrameBufferLoss out 当前 StartAcquisition 后的 FrameBuffer 溢出丢帧数

返回:成功返回 CBXS_RET_SUCCESS

说明

  • 用于评估采集链路稳定性与系统负载。