海康相机SDK主动取流中MV_CC_GetOneFrameTimeout_NET() 和MV_CC_GetImageBuffer_NET()的区别

SDK提供主动获取图像的接口,用户可以在开启取流后直接调用此接口获取图像,也可以使用异步方式(线程、定时器等)获取图像。

主动取流有两种方式(不可以同时使用)
方式一:调用 MV_CC_StartGrabbing_NET() 开始采集,需要自己开启一个buffer,然后在应用层循环调用 MV_CC_GetOneFrameTimeout_NET() 获取指定像素格式的帧数据,获取帧数据时上层应用程序需要根据帧率控制好调用该接口的频率。

方式二:调用 MV_CC_StartGrabbing_NET() 开始采集,然后在应用层调用 MV_CC_GetImageBuffer_NET() 获取指定像素格式的帧数据,然后调用 MV_CC_FreeImageBuffer_NET() 释放buffer,获取帧数据时上层应用程序需要根据帧率控制好调用该接口的频率。

区别:
1、 MV_CC_GetImageBuffer_NET() 需要与 MV_CC_FreeImageBuffer_NET() 配套使用,当处理完取到的数据后,需要用 MV_CC_FreeImageBuffer_NET() 接口将pstFrame内的数据指针权限进行释放。
2、 MV_CC_GetImageBuffer_NET() 与 MV_CC_GetOneFrameTimeout_NET() 相比,有着更高的效率。且其取流缓存的分配是由SDK内部自动分配的,MV_CC_GetOneFrameTimeout_NET() 接口是需要客户自行分配。
 

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
海康相机,函数 `mv_cc_registerimagecallbackforbgr` 用于注册回调函数,用以实时获取相机捕获的图像数据,并将其的 RGB 数据以 OpenCV 格式返回。 OpenCV 是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算法。在回调函数使用 OpenCV 格式返回图像数据,以便使用 OpenCV 库的函数进行图像处理和分析。回调函数的定义如下: ```c++ void __stdcall ImageCallbackForBGR(unsigned char * pData, MV_FRAME_OUT_INFO_EX* pFrameInfo, void* pUser) { cv::Mat image; // 根据相机的输出格式,将 pData 数据转换成 OpenCV 支持的 BGR 格式图像 if (pFrameInfo->enPixelType == PixelType_Gvsp_BGR8_Packed) { image = cv::Mat(pFrameInfo->nHeight, pFrameInfo->nWidth, CV_8UC3, pData).clone(); } else if (pFrameInfo->enPixelType == PixelType_Gvsp_RGBA8_Packed) { // 如果相机输出为 RGBA 格式,则需要先将其转换成 BGR 格式 cv::Mat rgbaImage(pFrameInfo->nHeight, pFrameInfo->nWidth, CV_8UC4, pData); cv::cvtColor(rgbaImage, image, CV_RGBA2BGR); } // 在此可对图像进行 OpenCV 相关操作,例如显示图像、保存图像等 cv::imshow("Image", image); cv::waitKey(1); } ``` 回调函数接收到相机捕获的图像数据后,首先根据相机的输出格式确定图像的编码方式,如果为 BGR 格式,则可以直接构造出 OpenCV 的 `cv::Mat` 对象;如果为 RGBA 格式,则需要先将其转换为 BGR 格式。接下来,可以在回调函数通过 OpenCV 提供的函数对图像进行操作,例如显示图像、保存图像等。 以上就是在 `mv_cc_registerimagecallbackforbgr` 回调函数使用 OpenCV 格式的解答。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值