Halcon與MFC交互編程


Halcon是商業化的機器視覺軟件。網上下了halcon10的破解版,安裝后編寫了個圖像顯示的MFC小程序。

編譯器用的是VS2008。

1 配置halcon環境

  新建為MFC后,在VC++目錄中配置包含文件和庫文件

   include路徑:D:\Program Files\MVTec\HALCON-10.0\include

                      D:\Program Files\MVTec\HALCON-10.0\include\cpp

                   主要是安裝halcon的路徑

   lib文件:  D:\Program Files\MVTec\HALCON-10.0\lib\x86sse2-win32

2 MFC程序中添加頭文件、命名控件、靜態鏈接庫

  我是在stdafx.h中加 #include <halconcpp.h>  using namespace Halcon;

  靜態鏈接庫,我是在鏈接器輸入的附加依賴項中添加halconcpp.lib

   圖像顯示程序如下

   加入變量 

Halcon::HTuple m_htWindow;
Halcon::Hobject m_hoImage;
CString m_editOpenDir;

 

3 添加代碼:

 在初始化對話框中添加

CRect rtWindow;
HWND hImgWnd = GetDlgItem( IDC_BMPWINDOW)->m_hWnd;
GetDlgItem( IDC_BMPWINDOW)->GetClientRect(&rtWindow);
Halcon::open_window(rtWindow.left, rtWindow.top, rtWindow.Width(), rtWindow.Height(), (Hlong)hImgWnd, "visible", "", &m_htWindow);
Halcon::set_part(m_htWindow, 0, 0, 200-1, 200-1);//其中 IMG_HEIGHT 、IMG_WIDTH分別為512,,400.這個可以自行定義。

在打開圖像按鈕中添加

char* pcsun="圖片文件(*.bmp)|*.bmp||";
CFileDialog OpenDialog(TRUE,NULL,0,OFN_OVERWRITEPROMPT,pcsun,NULL);
if(OpenDialog.DoModal() == IDCANCEL) return;
//返回帶文件名的路徑,並傳遞給編輯控件變量
m_editOpenDir = OpenDialog.GetPathName();
UpdateData(FALSE);

 

在顯示圖像按鈕中添加

CString str;
str=m_editOpenDir;
char* ch=(char*)LPCTSTR(str);
Halcon::read_image(&m_hoImage, ch);
Halcon::disp_obj(m_hoImage, m_htWindow);

 

注意: error C2259: “Halcon::HObject”: 不能實例化抽象類 

  這個錯誤其實是Hobject o要小寫,可能這是halcon版本的問題導致的!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM