zoukankan      html  css  js  c++  java
  • Halcon与MFC交互编程

    Halcon是商业化的机器视觉软件。网上下了halcon10的破解版,安装后编写了个图像显示的MFC小程序。

    编译器用的是VS2008。

    1 配置halcon环境

      新建为MFC后,在VC++目录中配置包含文件和库文件

       include路径:D:Program FilesMVTecHALCON-10.0include

                          D:Program FilesMVTecHALCON-10.0includecpp

                       主要是安装halcon的路径

       lib文件:  D:Program FilesMVTecHALCON-10.0libx86sse2-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版本的问题导致的!

     

  • 相关阅读:
    新mac本安装Homebrew姿势(大前提:需要FQ)
    git 常用命令
    elementUI 函数自定义传参
    微信小程序避坑指南——echarts层级太高/层级遮挡
    前端向后端传递formData类型的二进制文件
    elemetnUI表格分别给列表每一个按钮加loading
    前端获取cookie,并解析cookie成JSON对象
    elementUI 输入框用户名和密码取消自动填充
    AOP面向切面编程
    关于ArrayList、HashSet、HashMap在并发下不安全的实例以及解决办法
  • 原文地址:https://www.cnblogs.com/love6tao/p/5475390.html
Copyright © 2011-2022 走看看