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

邮箱:[email protected]

?

?

?

时间: 2024-10-01 02:34:34

C#应用视频教程3.3 Halcon+C#测试的相关文章

C#应用视频教程3.4 Halcon+C#测试

有了前面的基础后,我们来测试一下如何把程序做的更通用,首先是把初始化的方法修改一下,在初始化的时候传递过去HTuple这个对象(改成了全局的变量,以便于不同的方法调用) ? 其次需要有相机打开/相机关闭,图像保存/图像加载的功能(方便我们快速做测试),前面的相机操作已经讲过了,这里图像的加载也只是套用了前面的加载一个静态图像的功能(把绝对地址改成了参数),保存图像调用了Halcon的WriteImage方法 ? 这个方法可以参考范例write_image的这个范例学习(看他导出的C#的程序,稍微

C#应用视频教程3.2 Halcon软件测试

Halcon是图像处理比较牛逼的一个软件(德国人的东西,做的非常强大,里面集成的算法很多,可能你一辈子研究这个也做不过他),然而牛逼归牛逼,康耐视,基恩士也很牛逼,但是日本人的东西一般太过封闭,屌丝用不起,也用不上,用上了也很难自己DIY(我们研究Halcon因为他只是一个PC平台的图像处理库,不管你用C#还是C++,QT,JAVA都可以自己开发上位的程序,自己搭配相机做项目,而不是被各种硬件和软件的限制). http://www.mvtec.com/products/halcon ? 讲到Ha

C#应用视频教程3.1 USB工业相机测试

图像处理是工控很有价值的一个领域,比如人脸识别,车牌识别,还有产品的位置识别,瑕疵检测,对于个人学习来说,我们无法直接上手几万块的成熟工业相机(高端的康耐视要6万左右,而且是黑白的,要测试一些带颜色的算法功能无法实现),先要用便宜的东西做一些简单的测试(原则上做教程不应该涉及硬件,因为如果读者无法按照你的硬件标准学习,那也只能走马观花看一遍,但是实际上要做工控必须要涉及硬件,可以先从简单的便宜的开始入手) ? 淘宝是比较靠谱的方案,我自己测试买的是下面这个品牌的(不是要给他们做广告,读者也可以自

Halcon算子解释

Halcon算子解释大全 Halcon/Visionpro视频教程和资料,请访问 重码网,网址: http://www.211code.com Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样本添加到一个高斯混合模型的训练数据上. 2.classify_class_gmm 功能:通过一个高斯混合模型来计算一个特征向量的类. 3. clear_all_class_gmm 功能

halcon算子

halcon的算子列表 Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样本添加到一个高斯混合模型的训练数据上. 2.classify_class_gmm 功能:通过一个高斯混合模型来计算一个特征向量的类. 3. clear_all_class_gmm 功能:清除所有高斯混合模型. 4. clear_class_gmm 功能:清除一个高斯混合模型. 5. clear_samp

halcon算子大全

Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样本添加到一个高斯混合模型的训练数据上. 2.classify_class_gmm 功能:通过一个高斯混合模型来计算一个特征向量的类. 3. clear_all_class_gmm 功能:清除所有高斯混合模型. 4. clear_class_gmm 功能:清除一个高斯混合模型. 5. clear_samples_class_gm

云计算视频教程:2020Linux新手小白视频教程

在IT行业,可以说Linux系统已经渗入到各个角落,无论是从事什么语言的编程人员,对Linux应该都要有所了解.下面,千锋就为大家分享最新视频教程,帮助新手快速入门. 这套视频教程,介绍了Linux系统的详细操作.Vim编辑器.创建用户.删除用户.创建文件以及基本权限和高级权限的掌握,Lvm逻辑卷的创建和扩容.让你学完后可以熟练的掌握linux系统的操作和搭建出一些基本的网站,如wordpress博客.论坛等. 第1章 走进Linux世界 01 走进linux世界 02 虚拟机安装 03 fin

Hydrolink v9.52 for Maxsurf(数据交换模块)

Section Maker v8.51 for Maxsurf(结构设计) Steel Designeer v8.51 for Maxsurf(钢结构设计) AutoYacht.8.2.0(Autoship公司的供快艇设计者使用的外壳设计和外观模型工具) HydroSoft.NavCAD.v4.23.0061(船舶水动力学性能(螺旋桨和机浆匹配)设计) HydroComp.NavCAD.2004.v5.08(船舶水动力学性能(螺旋桨和机浆匹配)设计) HydroComp.PropExpert.2

Koch.Glitsch.KG.TOWER.v5.01.013 1CD

2014.07.18 Bentley.Limcon.03.63.01.14 1CD Bentley.Microstran.Advanced.09.20.01.21 1CD Bentley.MSTower.06.20.01.09 1CD Geometric.Glovius.Pro.v3.9.Win32_64 1CD Latitude Geographics Geocortex Essentials v4.1.3 1CD Synopsys.VCS.vI-2014.03-2.Linux64 1CD T