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