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

     

  • 相关阅读:
    使用 kill 命令杀死 java进程,你用对了吗?
    脚本 启动/停止 jar包服务
    Zipkin和微服务链路跟踪
    nacos初探--作为配置中心
    第一次有人把“分布式事务”讲的这么简单明了
    SquishIt引起的HTTP Error 500.0
    imagesLoaded – 检测网页中的图片是否加载
    25个精美的创意机构和设计工作室网站案例
    使用 FocusPoint.js 实现图片的响应式裁剪
    设计师收藏的20款英文手写字体【免费下载】
  • 原文地址:https://www.cnblogs.com/love6tao/p/5475390.html
Copyright © 2011-2022 走看看