KSJXS SDK · 采集与数据获取
启停采集、回调注册、主动取数据、超时与缓存、数据格式、帧率与 ZMap 重采样。
本组对应头文件 @defgroup Capture。取数有两条路径:回调模式(nMode=0) 与 主动采集模式(nMode=1),二者互斥。
回调注册函数一览
先 KSJXS_SetDataFormat 设定格式,再注册对应回调;只有格式匹配的回调才会被触发。
| 注册函数 | 回调类型 | 触发的数据格式 | 用途 |
|---|---|---|---|
KSJXS_RegisterImageModeCB |
KSJXS_IMAGE_MODE_CALLBACK |
KSJXS_DF_IMAGE |
原图(调试参数) |
KSJXS_RegisterLiveImageCB |
KSJXS_LIVE_IMAGE_CALLBACK |
非原图模式 | 实时图像(调试;仅 USB 接口 UC3D,可能降低 3D 性能) |
KSJXS_RegisterProfileCB |
KSJXS_PROFILE_CALLBACK |
KSJXS_DF_NON_UNIFORM |
原始 3D 轮廓 |
KSJXS_RegisterPtCloudCB |
KSJXS_PTCLOUD_CALLBACK |
KSJXS_DF_NON_UNIFORM |
原始 3D 点云 |
KSJXS_RegisterUniformXProfileCB |
KSJXS_UNIFORMX_PROFILE_CALLBACK |
KSJXS_DF_UNIFORMX |
X 重排轮廓 |
KSJXS_RegisterZMapCB |
KSJXS_ZMAP_CALLBACK |
KSJXS_DF_UNIFORMX |
ZMap 高度图 |
KSJXS_RegisterPIProfileCB |
KSJXS_PROFILE_I_CALLBACK |
KSJXS_DF_NON_UNIFORM_INTENSITY |
轮廓 + 亮度 |
KSJXS_RegisterPICB |
KSJXS_PI_CALLBACK |
KSJXS_DF_NON_UNIFORM_INTENSITY |
点云 + 亮度 |
KSJXS_RegisterZIProfileCB |
KSJXS_UNIFORMX_PROFILE_I_CALLBACK |
KSJXS_DF_UNIFORMX_INTENSITY |
重排轮廓 + 亮度 |
KSJXS_RegisterZICB |
KSJXS_ZI_CALLBACK |
KSJXS_DF_UNIFORMX_INTENSITY |
ZMap + 亮度 |
注册函数签名统一为:int KSJXS_RegisterXxxCB(IN void* handle, <回调类型> pfCallback, void* lpContext)。
KSJXS_StartAcquisition
int KSJXS_StartAcquisition(IN void* handle, int nMode = 0)
启动相机开始采集。
| 参数 | 方向 | 说明 |
|---|---|---|
nMode |
in | 采集模式:0 = 回调模式(默认),1 = 主动采集模式(用 KSJXS_CaptureData 取数) |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 启动后部分参数不可改(ROI、触发模式等),需先
KSJXS_StopAcquisition。
KSJXS_StopAcquisition
int KSJXS_StopAcquisition(IN void* handle)
停止相机采集。
| 参数 | 方向 | 说明 |
|---|---|---|
handle |
in | 设备句柄 |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
KSJXS_CaptureData
int KSJXS_CaptureData(IN void* handle, CaptureData** data)
主动采集一帧数据。
| 参数 | 方向 | 说明 |
|---|---|---|
data |
out | 采集到的数据(CaptureData 联合体,按数据格式解析) |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 仅在
KSJXS_StartAcquisition的 nMode = 1 时有效。 - 取到数据后必须调用
KSJXS_ReleaseData释放内存。
KSJXS_ReleaseData
int KSJXS_ReleaseData(IN void* handle, CaptureData* data)
释放 KSJXS_CaptureData 采集的数据内存。
| 参数 | 方向 | 说明 |
|---|---|---|
data |
in | KSJXS_CaptureData 返回的数据指针 |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
KSJXS_SetCaptureTimeout
int KSJXS_SetCaptureTimeout(IN void* handle, unsigned long dwTimeOut)
设置采集超时时间(对应 KSJXS_CaptureData 返回的最长时间)。
| 参数 | 方向 | 说明 |
|---|---|---|
dwTimeOut |
in | 采集超时时间,单位:ms |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 外触发时该时间最好大于外触发可能的最大时间间隔。
KSJXS_GetCaptureTimeout
int KSJXS_GetCaptureTimeout(IN void* handle, unsigned long* pdwTimeOut)
获取采集超时时间。
| 参数 | 方向 | 说明 |
|---|---|---|
pdwTimeOut |
out | 当前超时时间,单位:ms |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
KSJXS_SetImageTimeout
int KSJXS_SetImageTimeout(IN void* handle, unsigned long dwTimeOut)
(UC3D)设置采集图像超时时间。
| 参数 | 方向 | 说明 |
|---|---|---|
dwTimeOut |
in | 采集超时时间,单位:ms |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 仅 UC3D 设备支持。
KSJXS_GetImageTimeout
int KSJXS_GetImageTimeout(IN void* handle, unsigned long* pdwTimeOut)
(UC3D)获取采集图像超时时间。
| 参数 | 方向 | 说明 |
|---|---|---|
pdwTimeOut |
out | 当前超时时间,单位:ms |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 仅 UC3D 设备支持。
KSJXS_SetBufferNumber
int KSJXS_SetBufferNumber(IN void* handle, int nNumber)
设置 API 轮廓的缓存数目。
| 参数 | 方向 | 说明 |
|---|---|---|
nNumber |
in | 图像帧缓存数目 |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 缓存越大占用内存越多,越能防止 PC 性能波动造成的丢帧。
KSJXS_GetBufferNumber
int KSJXS_GetBufferNumber(IN void* handle, int* pnNumber)
获取 API 轮廓的缓存数目。
| 参数 | 方向 | 说明 |
|---|---|---|
pnNumber |
out | 图像缓存数目 |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
KSJXS_SetDataFormat
int KSJXS_SetDataFormat(IN void* handle, KSJXS_DATA_FORMAT DataFormat)
设置 3D 图像数据格式。
| 参数 | 方向 | 说明 |
|---|---|---|
DataFormat |
in | 数据格式,见 KSJXS_DATA_FORMAT |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 应在
KSJXS_GetRoi之前调用;采集前必须确定数据格式。
KSJXS_GetDataFormat
int KSJXS_GetDataFormat(IN void* handle, KSJXS_DATA_FORMAT* pDataFormat)
获取当前 3D 图像数据格式。
| 参数 | 方向 | 说明 |
|---|---|---|
pDataFormat |
out | 当前数据格式 |
返回:成功返回 KSJXS_RET_SUCCESS;失败返回错误码
KSJXS_GetSystemClock
int KSJXS_GetSystemClock(IN void* handle, float* pfSysmClockMHz)
获取系统时钟频率。
| 参数 | 方向 | 说明 |
|---|---|---|
pfSysmClockMHz |
out | 系统时钟频率,单位:MHz |
返回:成功返回 KSJXS_RET_SUCCESS
说明
1 / pfSysmClockMHz即ullTimesTamp时间戳的时间单位(μs)。
KSJXS_GetTransmissionRate
int KSJXS_GetTransmissionRate(IN void* handle, float* pfTransmissionRate)
获取采集帧率。
| 参数 | 方向 | 说明 |
|---|---|---|
pfTransmissionRate |
out | 采集帧率 |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 代表当前实际采集过程中轮廓数据的采集频率。
KSJXS_GetExternalTriggerRate
int KSJXS_GetExternalTriggerRate(IN void* handle, float* pfExternalTriggerRateHz)
获取轮廓触发频率。
| 参数 | 方向 | 说明 |
|---|---|---|
pfExternalTriggerRateHz |
out | 轮廓触发频率 |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- Internal 模式:传感器内部按"内触发频率"实际产生的触发频率。
- External 模式:滤波后、分频前的轮廓外触发信号输入频率。
KSJXS_GetZMapUniformXYSize
int KSJXS_GetZMapUniformXYSize(int* nOutWidth, int* nOutHeight, int nWidth, int nHeight, float fXRes, float fYRes, float fRes)
计算 XY 等距重采样后的数据尺寸。
| 参数 | 方向 | 说明 |
|---|---|---|
nOutWidth |
out | 重采样后 X 方向数据点数 |
nOutHeight |
out | 重采样后 Y 方向数据点数 |
nWidth |
in | 原始 X 方向数据点数 |
nHeight |
in | 原始 Y 方向数据点数 |
fXRes |
in | X 方向精度,单位:mm |
fYRes |
in | Y 方向精度,单位:mm |
fRes |
in | 重采样精度,单位:mm |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 配合
KSJXS_ZMapUniformXY使用,先算尺寸再分配内存。
KSJXS_ZMapUniformXY
int KSJXS_ZMapUniformXY(IN void* handle, float* pfZOut, float* pfZIn, int nWidth, int nHeight, float fXRes, float fYRes, float fRes)
ZMap 数据 X、Y 方向等距重采样,解决 XY 精度不同导致的变形。
| 参数 | 方向 | 说明 |
|---|---|---|
pfZOut |
out | 重采样后 3D 数据内存指针 |
pfZIn |
in | 原始 3D 数据内存指针 |
nWidth |
in | X 方向数据点数 |
nHeight |
in | Y 方向数据点数 |
fXRes |
in | X 方向精度,单位:mm |
fYRes |
in | Y 方向精度,单位:mm |
fRes |
in | 重采样精度,单位:mm |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 输出内存需提前分配,大小由
KSJXS_GetZMapUniformXYSize计算。
KSJXS_ZMapIntensityUniformXY
int KSJXS_ZMapIntensityUniformXY(IN void* handle, float* pfZOut, float* pfZIn, unsigned char* pIOut, unsigned char* pIIn, int nWidth, int nHeight, float fXRes, float fYRes, float fRes)
ZMap 与亮度数据 X、Y 方向等距重采样。
| 参数 | 方向 | 说明 |
|---|---|---|
pfZOut |
out | 重采样后 3D 数据内存指针 |
pfZIn |
in | 原始 3D 数据内存指针 |
pIOut |
out | 重采样后亮度数据内存指针 |
pIIn |
in | 原始亮度数据内存指针 |
nWidth |
in | 重采样前 X 方向数据点数 |
nHeight |
in | 重采样前 Y 方向数据点数 |
fXRes |
in | X 方向精度,单位:mm |
fYRes |
in | Y 方向精度,单位:mm |
fRes |
in | 重采样精度,单位:mm |
返回:成功返回 KSJXS_RET_SUCCESS
说明
- 输出内存需提前分配,大小由
KSJXS_GetZMapUniformXYSize计算。
这份文档对您有帮助吗?
发现错误、表述不清或缺少内容?请告诉我们,我们会尽快补充。
您可以通过以下方式反馈: 发送邮件至 service@catchbest.com