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版本的問題導致的!