久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Halcon12.0結(jié)合vs2010進行大恒相機SDK二次開發(fā)

 ouyangsbb 2019-10-18

Halcon12.0結(jié)合vs2010進行大恒相機SDK二次開發(fā)

2018-04-01 21:51:11 德賽法 閱讀數(shù) 3082
版權(quán)聲明:本文為博主原創(chuàng)文章,,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,,轉(zhuǎn)載請附上原文出處鏈接和本聲明。

一 功能

實時顯示通過調(diào)用halcon函數(shù)處理后的圖像

二 前期

相機大恒MER-500-7UM,,系統(tǒng)win7-64位,,編程環(huán)境vs2010,,軟件halcon12.0,基礎(chǔ)開發(fā)為大恒自帶樣例SDK包(C:\Program Files\Daheng Imavision\MER-Series\Samples\VC SDK\src\GxSingleCamMono)

三 方法

先說總體思想,,直接在SDK開發(fā)基礎(chǔ)上增加圖像處理功能,。先將bitmap轉(zhuǎn)成HObject(必須要把bitmap格式轉(zhuǎn)成halcon相關(guān)格式,然后才能調(diào)用halcon函數(shù)庫處理圖像),,然后調(diào)用halcon庫函數(shù)(halcon生成的圖像處理cpp代碼片段),,最后再將處理后的圖像格式由HObject改成bitmap,通過大恒自身帶的函數(shù)顯示出來,。

1   打開halcon12.0->文件->瀏覽實例程序->圖像分割->background_seg.hdev->文件->導出->C++,HALCON/C++,。

2 打開大恒SDK開發(fā)包,位置如上文((C:\Program Files\Daheng Imavision\MER-Series\Samples\VC SDK\src\GxSingleCamMono)視安裝目錄而定)GxSingleCamMono_VS2010。然后把halcon生成的cpp文件代碼截取加入到CGxSingleCamMonoDlg.cpp中,。代碼中加中文注釋的部分是我添加的代碼(A,bitmap轉(zhuǎn)HObject,;B,halcon圖像處理;C,,HObject轉(zhuǎn)bitmap)

  1. void __stdcall CGxSingleCamMonoDlg::OnFrameCallbackFun(GX_FRAME_CALLBACK_PARAM* pFrame)
  2. {
  3. CGxSingleCamMonoDlg *pDlg = (CGxSingleCamMonoDlg*)(pFrame->pUserParam);
  4. int nImageHeight = (int)pDlg->m_nImageHeight;
  5. int nImageWidth = (int)pDlg->m_nImageWidth;
  6. if (pFrame->status == 0)
  7. {
  8. memcpy(pDlg->m_pBufferRaw,pFrame->pImgBuf,pFrame->nImgSize);
  9. // Show image after flipping image data if mono camera has been used.
  10. for(int i =0;i <nImageHeight;i++)
  11. {
  12. memcpy(pDlg->m_pImageBuffer+i*nImageWidth, pDlg->m_pBufferRaw+(nImageHeight-i-1)*nImageWidth,(size_t)nImageWidth);
  13. }
  14. ///////////bitmap轉(zhuǎn)HObject///////////
  15. HObject Image;
  16. GenImage1(&Image,"byte",(HTuple)nImageWidth,(HTuple)nImageHeight,(long)pDlg->m_pImageBuffer);
  17. ////////////////////////////////////
  18. ///////////halcon圖像處理///////////
  19. HObject ho_EdgeAmplitude,ho_Edges;
  20. SobelAmp(Image, &ho_EdgeAmplitude, "thin_sum_abs", 3);
  21. Threshold(ho_EdgeAmplitude, &ho_Edges, 5, 255);
  22. ////////////////////////////////////
  23. ///////////HObject轉(zhuǎn)bitmap///////////
  24. HTuple hv_Pointer;
  25. HTuple hv_Type="byte";
  26. HTuple hv_Width=nImageWidth;
  27. HTuple hv_Height=nImageHeight;
  28. GetImagePointer1(ho_EdgeAmplitude, &hv_Pointer, &hv_Type, &hv_Width, &hv_Height);
  29. BYTE *p=(BYTE *)hv_Pointer[0].L();
  30. int height= (Hlong)hv_Height;
  31. int width = (Hlong)hv_Width;
  32. memcpy(pDlg->m_pImageBuffer,p,width*height*sizeof(BYTE));
  33. ////////////////////////////////////
  34. pDlg->DrawImg();
  35. if (pDlg->m_bIsSaveImg)
  36. {
  37. pDlg->SaveImage();
  38. }
  39. }
  40. }

四 效果

1  未加代碼實時圖像如下:


2 加代碼實時圖像如下:

注意看,,有白色邊界。


五 參考

1 https://blog.csdn.net/d_a_r_k/article/details/66973582將bitmap轉(zhuǎn)HObject,,原文是彩色圖,,我的是8位灰度圖,因此做了些修改,。

2 http://www./read-2272.html 將HObject轉(zhuǎn)bitmap,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多