CBXS3D SDK · 采集与数据获取
采集启停、主动取帧与释放、超时、缓存、数据格式、系统时钟、激光光条阈值/宽度、亮度图阈值、帧率/触发频率/丢帧统计。
本组对应头文件 @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
说明
- 用于评估采集链路稳定性与系统负载。
这份文档对您有帮助吗?
发现错误、表述不清或缺少内容?请告诉我们,我们会尽快补充。
您可以通过以下方式反馈: 发送邮件至 service@catchbest.com