SDK提供注册回调函数的接口,用户可以将自己定义的回调函数注册在SDK内部,SDK获取到相机图像会主动回调到应用程序供用户处理,此方式可以简化用户程序逻辑。
一、流程
• 回调取图方式使用场景:
可以使用 MV_CC_RegisterImageCallBackEx_NET() 接口注册回调函数。回调函数可以自定义,用于自动回调获取的图像。此方法可以简化应用程序逻辑。
• 注意事项:
a、回调函数中不建议有耗时操作、线程锁等,容易造成回调阻塞。
b、Pdata返回的是一个地址指针,建议将Pdata里面的数据copy出来另建线程使用。
二、实例
1、初始化回调函数的委托
//ImageCallBack的定义
private void ImageCallBack(IntPtr pData, ref MyCamera.MV_FRAME_OUT_INFO_EX pFrameInfo, IntPtr pUser)
{
int nIndex=(int) pUser;
// ch:抓取的帧数 | en:Aquired Frame Number
++m_nFrames[nIndex];
//ch:判断是否需要保存图片 | en:Determine whether to save image
if (m_bSaveImg[nIndex])
{
SaveImage(pData,pFrameInfo,nIndex);
m_bSaveImg[nIndex] = false;
}
MyCamera.MV_DISPLAY_FRAME_INFO stDisplayInfo = new MyCamera.MV_DISPLAY_FRAME_INFO();
stDisplayInfo.hWnd = m_hDisplayHandle[nIndex];
stDisplayInfo.pData = pData;
stDisplayInfo.nDataLen = pFrameInfo.nFrameLen;
stDisplayInfo.nWidth = pFrameInfo.nWidth;
stDisplayInfo.nHeight = pFrameInfo.nHeight;
stDisplayInfo.enPixelType = pFrameInfo.enPixelType;
m_pMyCamera[nIndex].MV_CC_DisplayOneFrame_NET(ref stDisplayInfo);
}
2、注册回调函数
具体的代码请查看海康的demo