C#应用视频教程3.3 Halcon+C#测试
接下来我们考虑把Halcon的代码移植到C#程序上,首先找到halcon的dll(.NET类库有1.0,2.0,3.5的,如果你安装了更新版本的halcon则有更新的.NET类库,我们复制最新的dll到自己新建C#程序的Debug目录下)

直接把这个DLL拖放到工具箱上,然后可以出现一个HWindowControl的控件(跟上一节OPENGL很像)

把你的C#程序目标平台改成对应的电脑系统版本,同时目标框架4(个人经验,如果改成.NET Framework 3.5或者4.5都会有问题),可以直接F5运行一下看又没有报错

执行Halcon的代码导出,先来看最简单的代码导出,打开官方的范例clip,然后导出为C#的程序(保持所有设置如下)

在前面做好的C#程序中定义一个新的类,然后直接复制粘贴所有代码(顶部添加引用HalconDotNet,然后把class XXX删掉直接复制这个HDevelopExport)

在主程序中直接窗体载入的时候写下面两句话,生成类的实例,然后执行实例的RunHalcon方法(不管你的Halcon程序多么复杂,在导出为C#类的时候都只有很少的几个方法)

如果不能运行则注释掉报错的代码(比如disp_continue_message,就是类似于显示一个文字,箭头这种方法可能还不支持),这些不影响使用

可以发现整个程序已经可以运行了(虽然还不能像Halcon那样把所有采集到的变量放到数组中,这些我们后面再考虑)

那么能不能做的简单一点呢?我们如果只是希望展示一副图片,或者打开相机采集接口,首先还是用Halcon产生三种图片的获取方法(都可以用Image Acquistion方法自动生成代码)

将产生的C#程序做一下重新编排,Action里面只放第一段的代码

再把第二段的代码重新创建一个方法,并且放进去(跟前面的方法很类似)

测试发现都是可以正常运行的,由此我们就可以自己扩充Halcon导出的类了

那么如何支持相机的图像呢?跟官方导出的代码不同,我们这里需要注意while死循环中一方面采集,一方面就要显示(DispObj方法),此外由于是死循环,所以需要放到额外的线程中执行,否则界面会卡死

有相机的打开,就要有对应的关闭方法,最方便的做法还是做一个全局的布尔值,如果是false,则不执行抓取图像和显示图像的操作(读这样可以测试使用官方的CloseFramegarbber方法跟前面开启对应,实际上还是会有很多问题,窗体会卡死)

已经可以正常采集到相机的图像了(注意打开浏览静态图像之前先关闭掉相机采集图像,此外这里使用的还是绝对的文件路径,所以如果你的项目不在桌面上,第二幅图片可能打不开)

更多教学视频和资料下载,欢迎关注以下信息:
我的优酷空间:
http://i.youku.com/acetaohai123

我的在线论坛:
http://csrobot.gz01.bdysite.com/

问题交流:
QQ:910358960
C#应用视频教程3.3 Halcon+C#测试的更多相关文章
- C#应用视频教程3.4 Halcon+C#测试
有了前面的基础后,我们来测试一下如何把程序做的更通用,首先是把初始化的方法修改一下,在初始化的时候传递过去HTuple这个对象(改成了全局的变量,以便于不同的方法调用) 其次需要有相机打开/相机关 ...
- C#应用视频教程3.2 Halcon软件测试
Halcon是图像处理比较牛逼的一个软件(德国人的东西,做的非常强大,里面集成的算法很多,可能你一辈子研究这个也做不过他),然而牛逼归牛逼,康耐视,基恩士也很牛逼,但是日本人的东西一般太过封闭,屌丝用 ...
- C#应用视频教程3.1 USB工业相机测试
图像处理是工控很有价值的一个领域,比如人脸识别,车牌识别,还有产品的位置识别,瑕疵检测,对于个人学习来说,我们无法直接上手几万块的成熟工业相机(高端的康耐视要6万左右,而且是黑白的,要测试一些带颜色的 ...
- Halcon算子解释
Halcon算子解释大全 Halcon/Visionpro视频教程和资料,请访问 重码网,网址: http://www.211code.com Chapter 1 :Classification 1. ...
- halcon算子
halcon的算子列表 Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样 ...
- halcon的算子列表
Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样本添加到一个高斯混合模型的训 ...
- 《zw版·delphi与halcon系列原创教程》zw版_THOperatorSetX控件函数列表 v11中文增强版
<zw版·delphi与halcon系列原创教程>zw版_THOperatorSetX控件函数列表v11中文增强版 Halcon虽然庞大,光HALCONXLib_TLB.pas文件,源码就 ...
- Halcon 常用算子使用场合
Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样本添加到一个高斯混合模型的训 ...
- HALCON中的算子大全(中英对照)
HALCON中的算子大全(中英对照) Chapter 1 :Classification1.1 Gaussian-Mixture-Models1.add_sample_class_gmm功能:把一个训 ...
随机推荐
- Python开发基础-Day33 IO模型
IO模型分类 五种IO Model blocking IO 阻塞IO nonblocking IO 非阻塞IO IO multiplexing IO多路复用 signal driven IO 信号驱动 ...
- input限制中文字数
我们知道input控件有一个maxlength属性可以控制输入字符的长度,但是,它并不会识别是汉字还是其他符号,所以输入maxlength个汉字显然是不符合要求的. 为了实现对带有汉字的输入框长度控制 ...
- BZOJ4556 HEOI2016 字符串
后缀数组. 复习了后缀数组后发现这题真的很好写. 我们只需要将c依次向前向后扩展,找落在[a,b]区间内的最大值,遍历过程中不断用height数组更新. 复杂度就是后缀数组,比主席树的快多了. By: ...
- Every-SG 博弈论 mark定义和结论
http://blog.sina.com.cn/s/blog_51cea4040100h3l9.html 这种类型,可以想成这样,有N组游戏,有N个穿红色衣服的人代表先手,有N个穿蓝色衣服的人代表后手 ...
- 【树上主席树】BZOJ2588-Count on a tree
[题目大意] 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权.其中lastans是上一个询问的答案,初始为0,即第 ...
- bzoj 1015 维护连通块个数,离线并查集
水. /************************************************************** Problem: 1015 User: idy002 Langua ...
- windows安装zookeeper单机版
1.在apache的官方网站提供了好多镜像下载地址,然后找到对应的版本,目前最新的是3.4.6下载地址:http://mirrors.cnnic.cn/apache/zookeeper/zookeep ...
- ExtJS ComboBox同时加载远程和本地数据
ExtJS ComboBox同时加载远程和本地数据 原文:http://gblog.hbcf.net/index.php/archives/233 ComboBox比较特殊需求,将远程数据和本地数据同 ...
- UVA 11205 The broken pedometer(子集枚举)
B - The broken pedometer Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu ...
- Struts2的ActionError&ActionMessage示例
本教程显示使用Struts2的 ActionError 和 ActionMessage 类. 1. ActionError – 是用来发送错误信息反馈给用户 - 通过 <s:actionerro ...