C#獲取到相機圖像後調用回調函數處理圖像

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章