CB_Device SDK · 回调与帧获取
注册采集回调、获取与释放帧数据、查询帧率,以及图像保存、显示、事件与失效回调。
CB_SetGrabCallback
CB_RESULT CB_SetGrabCallback(int32_t iDevIndex, CB_GRAB_CALLBACK *pCbFunction, void* pCbContext)
注册采集回调函数。
| 参数 | 方向 | 说明 |
|---|---|---|
iDevIndex |
in | 设备索引,取值范围[0,(CB_EnumerateDevices()-1)] |
pCbFunction |
in | 回调函数地址,请参考CB_GRAB_CALLBACK回调函数定义 |
pCbContext |
in | 回调上下文 |
返回:成功返回 CB_E_SUCCESS;失败返回错误码(见错误码章节)
说明
- @note 这个函数需要在停止采集的状态下调用
- 图像数据采集有两种方式,两种方式不能复用: 方式一:调用CB_SetGrabCallback设置采集回调函数,然后调用CB_StartGrabbing开始采集,SDK会内部会开启采集线程,采集的每一帧数据信息将传递给回调函数。
CB_GetGrabCallback
CB_RESULT CB_GetGrabCallback(int32_t iDevIndex, CB_GRAB_CALLBACK** ppCbFunction, void** ppCbContext)
获取注册采集回调信息。
| 参数 | 方向 | 说明 |
|---|---|---|
iDevIndex |
in | 设备索引,取值范围[0,(CB_EnumerateDevices()-1)] |
ppCbFunction |
out | 指向回调函数地址的指针,请参考CB_GRAB_CALLBACK回调函数定义 |
ppCbContext |
out | 指向回调上下文地址的指针 |
返回:成功返回 CB_E_SUCCESS;失败返回错误码(见错误码章节)
说明
- 这个函数可以在采集状态下判断是否处于回调采集。
CB_GetGrabFrameBuffer
CB_RESULT CB_GetGrabFrameBuffer(int32_t iDevIndex, CB_TFrameData *ptFrameData)
获取一帧图像数据。
| 参数 | 方向 | 说明 |
|---|---|---|
iDevIndex |
in | 设备索引,取值范围[0,(CB_EnumerateDevices()-1)] |
ptFrameData |
out | 返回一帧数据,包括图像缓冲区指针,图像基本信息和水印信息。 |
返回:成功返回 CB_E_SUCCESS;失败返回错误码(见错误码章节)
说明
- @note 数据使用完成之后,必须调用CB_FreeGrabFrameBuffer函数释放帧缓冲,否则SDK内部采集线程会阻塞。 图像缓冲区指针指向SDK内部分配的采集Buffer,用户不需分配内存。
CB_FreeGrabFrameBuffer
CB_RESULT CB_FreeGrabFrameBuffer(int32_t iDevIndex, CB_TFrameData* ptFrameData)
释放。
| 参数 | 方向 | 说明 |
|---|---|---|
iDevIndex |
in | 设备索引,取值范围[0,(CB_EnumerateDevices()-1)] |
ptFrameData |
in | 通过CB_GetGrabFrameBuffer函数获取的指针 |
返回:成功返回 CB_E_SUCCESS;失败返回错误码(见错误码章节)
说明
- @note 调用CB_GetGrabFrameBuffer后,当ptFrameData不再使用时,必须调用CB_FreeGrabFrameBuffer通知库释放缓存。
CB_GetGrabFrameRate
CB_RESULT CB_GetGrabFrameRate(int32_t iDevIndex, float* pfFrameRate)
获取当前的采集帧率。
| 参数 | 方向 | 说明 |
|---|---|---|
iDevIndex |
in | 设备索引,取值范围[0,(CB_EnumerateDevices()-1)] |
pfFrameRate |
in | 获取采集帧率的指针 |
返回:成功返回 CB_E_SUCCESS;失败返回错误码(见错误码章节)
CB_SaveImage
CB_RESULT CB_SaveImage(CB_TSaveImage *ptSaveImage)
保存图像文件。
| 参数 | 方向 | 说明 |
|---|---|---|
ptSaveImage |
in | 保存图像的相关信息,请参考CB_TSaveImage结构体定义 |
返回:成功返回 CB_E_SUCCESS;失败返回错误码(见错误码章节)
说明
CB_DisplayImage
CB_RESULT CB_DisplayImage(CB_TDisplayImage* ptDispImage)
显示图像。
| 参数 | 方向 | 说明 |
|---|---|---|
ptDispImage |
in | 显示图像的相关信息,请参考CB_TDisplayImage结构体定义 |
返回:成功返回 CB_E_SUCCESS;失败返回错误码(见错误码章节)
CB_SetEventCallback
CB_RESULT CB_SetEventCallback(int32_t iDevIndex, CB_EVENT_CALLBACK *pCbFunction, void *pCbContext)
注册事件回调函数。
| 参数 | 方向 | 说明 |
|---|---|---|
iDevIndex |
in | 设备索引,取值范围[0,(CB_EnumerateDevices()-1)] |
pCbFunction |
in | 事件回调函数地址,请参考CB_EVENT_CALLBACK回调函数定义 |
pCbContext |
in | 回调上下文 |
返回:成功返回 CB_E_SUCCESS;失败返回错误码(见错误码章节)
说明
- 当注册的回调函数不为NULL,SDK库会启动读取事件线程,当接收到有效事件后,会调用事件回调函数。
CB_GetEventCallback
CB_RESULT CB_GetEventCallback(int32_t iDevIndex, CB_EVENT_CALLBACK** ppCbFunction, void** ppCbContext)
获取注册事件回调信息。
| 参数 | 方向 | 说明 |
|---|---|---|
iDevIndex |
in | 设备索引,取值范围[0,(CB_EnumerateDevices()-1)] |
ppCbFunction |
out | 指向回调函数地址的指针,请参考CB_EVENT_CALLBACK回调函数定义 |
ppCbContext |
out | 指向回调上下文地址的指针 |
返回:成功返回 CB_E_SUCCESS;失败返回错误码(见错误码章节)
说明
- 这个函数可以判断是否已经开启事件通知。
CB_SetInvalidateCallback
CB_RESULT CB_SetInvalidateCallback(int32_t iDevIndex, CB_INVALIDATE_CALLBACK* pCbFunction, void* pCbContext)
注册参数更新回调函数。
| 参数 | 方向 | 说明 |
|---|---|---|
iDevIndex |
in | 设备索引,取值范围[0,(CB_EnumerateDevices()-1)] |
pCbFunction |
in | 参数更新回调函数地址,请参考CB_INVALIDATE_CALLBACK回调函数定义 |
pCbContext |
in | 回调上下文 |
返回:成功返回 CB_E_SUCCESS;失败返回错误码(见错误码章节)
说明
- @note 回调函数在主线程中被调用,需尽快返回,否则主线程将被阻塞。
- 在设置某些参数时,与之关联的参数值可能会发生改变,当这些关联参数发生改变时,会调用参数更新回调函数。
CB_GetInvalidateCallback
CB_RESULT CB_GetInvalidateCallback(int32_t iDevIndex, CB_INVALIDATE_CALLBACK** ppCbFunction, void** ppCbContext)
获取注册参数更新回调信息。
| 参数 | 方向 | 说明 |
|---|---|---|
iDevIndex |
in | 设备索引,取值范围[0,(CB_EnumerateDevices()-1)] |
ppCbFunction |
out | 指向回调函数地址的指针,请参考CB_INVALIDATE_CALLBACK回调函数定义 |
ppCbContext |
out | 指向回调上下文地址的指针 |
返回:成功返回 CB_E_SUCCESS;失败返回错误码(见错误码章节)
说明
- 这个函数可以判断是否已经开启参数更新。
这份文档对您有帮助吗?
发现错误、表述不清或缺少内容?请告诉我们,我们会尽快补充。
您可以通过以下方式反馈: 发送邮件至 service@catchbest.com