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版本的问题导致的!

 

 

posted on 2016-05-09 20:50  mitutao  阅读(5411)  评论(1编辑  收藏  举报

导航