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

Halcon与MFC交互编程的更多相关文章

  1. firefox 扩展开发笔记(三):高级ui交互编程

    firefox 扩展开发笔记(三):高级ui交互编程 前言 前两篇链接 1:firefox 扩展开发笔记(一):jpm 使用实践以及调试 2:firefox 扩展开发笔记(二):进阶开发之移动设备模拟 ...

  2. MFC对话框编程详细学习笔记

    因最近研究工作要用到MFC,故再次重温了孙鑫老师的MFC对话框编程,因所用的编译软件为VS2008,与视频中孙老师使用的VC++6.0有很大出入,造成很大不便,我通过各方查找,实现了VS2008相对应 ...

  3. 转:MFC网络编程学习

    要学习好网路编程,主要看以下几个方面: 1.掌握概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等. 2.在实际Windows网络通信软件开发中,异步非阻 ...

  4. mfc socket编程

    socket编程用法---- 随着计算机网络化的深入,计算机网络编程在程序设计的过程中变得日益重要.由于C++语言对底层操作的优越性,许多文章都曾经介绍过用VC++进行Socket编程的方法.但由于都 ...

  5. halcon与C#混合编程进阶版

    这篇主要是C#和Halcon的混合编程,在此基础上对按键不同功能的划分,以及图片适应窗口和从本地打开图片. 新手来这里:http://www.cnblogs.com/badguy518/p/55150 ...

  6. 《转》MFC网络编程学习

    原地址:http://www.cnblogs.com/renyuan/archive/2013/06/04/3117006.html要学习好网路编程,主要看以下几个方面: 1.掌握概念,诸如:同步(S ...

  7. MFC 网络编程中::connect返回-1问题

    在MFC编写网络时遇到了::connect总是返回-1,但是与服务器可以进行接收和发送消息的操作. 原因是在进行连接的时候我没有进行初始化:::WSAStartup(w, &data);//动 ...

  8. MFC 网络编程 -- 总结

    原文链接:http://www.cnblogs.com/lidabo/archive/2012/07/19/2598734.html 1.基于 TCP 的 socket 编程 /* 服务器端程序流程: ...

  9. iOS - Swift 与 C 语言交互编程

    前言 作为一种可与 Objective-C 相互调用的语言,Swift 也具有一些与 C 语言的类型和特性,如果你的代码有需要,Swift 也提供了和常见的 C 代码结构混合编程的编程方式. 1.基本 ...

随机推荐

  1. <2048>游戏问卷调查心得与体会

    这是我的首次做问卷调查,刚开始感到不知所措,不知道该怎么去完成它,但是其中也充满了所谓的新鲜感,以前总是填别人做的问卷调查,但是现在是我们小组自己讨论得到的一张属于自己的问卷,可以说感受很深,一张小小 ...

  2. 解压缩c#

    protected void btn_ServerClick(object sender, EventArgs e)    {        string strtxtPath = "E:/ ...

  3. AMD加载器实现笔记(五)

    前几篇文章对AMD规范中的config属性几乎全部支持了,这一节主要是进一步完善.到目前为止我们的加载器还无法处理环形依赖的问题,这一节就是解决环形依赖. 所谓环形依赖,指的是模块A的所有依赖项的依赖 ...

  4. 作业二:Github注册过程

    第一步.打开Github官网https://github.com/ ,在相应位置填写注册名.注册邮箱.注册密码完成后点击注册. 第二步.这时会弹出一个界面,让你选择你的私人计划(personal pl ...

  5. SQL Server 性能优化之——T-SQL 临时表、表变量、UNION

    这次看一下临时表,表变量和Union命令方面是否可以被优化呢? 阅读导航 一.临时表和表变量 二.本次的另一个重头戏UNION 命令 一.临时表和表变量 很多数据库开发者使用临时表和表变量将代码分解成 ...

  6. [php入门] 4、HTML基础入门一篇概览

    [php入门] 1.从安装开发环境环境到(庄B)做个炫酷的登陆应用 [php入门] 2.基础核心语法大纲 [php入门] 3.WAMP中的集成MySQL相关基础操作 1.HTML的作用 HTML是超文 ...

  7. 自制Unity小游戏TankHero-2D(1)制作主角坦克

    自制Unity小游戏TankHero-2D(1)制作主角坦克 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的. ...

  8. 《30天自制操作系统》笔记(02)——导入C语言

    <30天自制操作系统>笔记(02)——导入C语言 进度回顾 在上一篇,记录了计算机开机时加载IPL程序(initial program loader,一个nas汇编程序)的情况,包括IPL ...

  9. jq里延迟对象Deferred,状态变化后,会一直保持

    var defer = $.Deferred(); defer.resolve('abc'); defer.done(function (data) { console.log(data); }) d ...

  10. 将不确定变为确定~transactionscope何时提升为分布式事务~SQL2005与SQL2008不同

    回到目录 Transactionscope何时被提升为分布式事务,即时要触发msdtc服务,这个问题与数据库版本有关,在前面的文章中,我的MSTDC系列出现了多个版本,有一点没有说清楚,测试的环境不同 ...