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() 接口是需要客户自行分配。