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

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

http://www.mvtec.com/products/halcon

?

讲到Halcon,就不得不讲到OpenCV,在C#中也有对应的类库叫做EmguCV,很多人下载,安装,然后就没有然后了。相比于Halcon,OpenCV的难度很大(个人感觉仅仅适合做研究使用,虽然他是开源的,免费的),如果要快速的测试项目,还是要用商业的成熟的东西(你对比一下上下的两个网站,明显鞥呢感觉到一个是产品,一个是科学研究的半成品)

http://www.emgu.com/wiki/index.php/Main_Page

?

安装过程就不介绍了,可以看我附件提供的下载地址(也可以自己百度下载地址,可能有更新的版本),安装完成之后打开软件,然后可以直接打开一个图像获取窗口,定位到某个有图片的文件夹

?

点击插入代码,可以在程序编辑器中看到自动生成的代码

?

Halcon非常强大,我们记住几个基本的快捷键(可以测试不断的按F6,看不断的执行read_image的效果,双击这个read_image还会自动定位到算子窗口,你可以修改这个函数的参数)

F2:程序重置

F5:程序运行

F6:单步运行

?

我们采集完了静态文件夹的图片,现在来尝试一下直接采集视频设备,切换成图像获取接口,点击检测(自动显示成DirectShow),然后切换到连接页面,点击连接-采集

?

点击实时就可以采集到实时的图像,切换到代码生成即可向上面一样得到播放视频的代码(F5可以连续运行不断获取相机的图像)

?

因为时间有限,我们直接研究本节的重点,特征匹配(就是找东西),打开例程的窗口,在里面输入关键字,比如match,就会自动显示所有相关的范例,直接打开这个best_match_rot_mg_clip1.hdev

?

仔细研究这个程序,虽然有几十行,但是其实代码都是像脚本语言的样子,非常容易理解,一般是直接先F5看整体的运行效果,可以发现他就是把图片中所有的回形针找出来(所谓的找出来就是找到特征的中心点,显示XY坐标和旋转角,画一个绿色的箭头表示找到了)

?

我们再来看一下他的执行流程(F2先重置,然后F6单步执行到下图所示的位置),注意create_template_rot方法从字面的意思就是创建一个模板(你要在图像中找到所有的长得很像的,就先要设置一个基准模板),执行到这一步的时候可以看到左下角的变量窗口的TemplateID已经生成了,而后面找到的元素的XY坐标和旋转角等等还都是问号(问号表示还没有值)

?

然后定位到这个best_math_rot_mg的函数,双击可以看到他的输入输出(虽然是一条命令,但是后面的参数已经包括了输入和输出),可以简单理解为就是前面创建了一个模板,这里只要拿着模板就可以到指定图像区域中找结果,找到的结果返回包括X,Y,angle,Error四个参数

?

刚才直接F5的时候不容易看清楚,这里单步F6就可以看到找到每个回形针的时候的结果参数的变化了(这个范例其他的代码部分包括了对图像的处理,像threshold,connection,reduce_domain,我们暂时先不管他,只要基本理解Halcon的图像处理完整流程即可)

?

如果要接着深入探讨,可以看他的下一个范例,如果设置回形针的区域为其他部位(如果专业做图像处理的人肯定需要掌握这些技巧,因为每一个具体项目要处理的图像是不一样的,你需要了解不同的图像最适合用哪些方法的组合完成最高效,最精准的匹配,每次需求也不一样,可能这次是抓回形针的中间,下次是头部,再下次只找最匹配的前面三个)

?

我们如何自定义特征?肯定要自定义绘制矩形,而不是给我们自己设置的矩形窗口。Halcon为我们提供了两种绘制矩形的方法,draw_rectangle1和draw_rectangle2,我们可以直接在算子窗口中输入部分代码,然后让他自动补全,完成之后注意参数对的上即可(不管是否带方向,只是输入的参数不同而已,最后对应的gen_rectangle1和gen_rectangle2都能把具体参数拿到然后生成Rectangle这个东西,后面的步骤就都一样了)

?

测试一下不带方向的绘制矩形的方法(鼠标左键拖出一个红色框,右键结束绘制,不管你按F6单步还是F5连续,执行到这一步就必须要画完才会接着执行,随后这个图像不管如何旋转都能找到我们设置的模板的XY和方向)

?

测试一下带方向的矩形框(也是鼠标左键框,鼠标放到蓝色十字架上设置原点,然后放到红色的宽度和高度上可以设置矩形的大小,放到绿色箭头上可以设置初始的方向,其他操作跟上面的一样)

?

?

更多教学视频和资料下载,欢迎关注以下信息:

我的优酷空间:

http://i.youku.com/acetaohai123

?

我的在线论坛:

http://csrobot.gz01.bdysite.com/

?

问题交流:

QQ:910358960

邮箱:[email protected]

?

?

?

?

时间: 2024-10-25 14:27:42

C#应用视频教程3.2 Halcon软件测试的相关文章

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都会有问题),

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

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

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

Bentley.Descartes.V8i.SS5.08.11.09.601 1DVD

Autodesk Softimage Entertainment Creation Suite 2015 x64 JetBrains PyCharm Pro 3.1.2 Pro Win/Mac/Linux Malwarebytes Anti-Malware Premium 2.0.1.1004 Multilanguage + Portable Killetsoft TRANSDAT 17.22 Multilanguage Evaer Video Recorder for Skype 1.5.3.

Materialise.Mimics.Innovation.Suite.v17.0.Medical.&.Research.Win32_64 4CD

AVL Suite 2014.0 (Workspace Suite 2014.0) Win32_64-ISO 1DVD Ricardo Suite 2014.1 Windows & Linux 2DVD Dassault Systemes GEOVIA Minex v6.3.306 1CD Delcam.FeatureCAM.2014.R3.SP1.Win32_64 2DVD282\Greenworks Xfrog v4.2.2 for C4D 9.rarGreenworks.Xfrog.v4.

SolidACE.BuiltWorks.2010.v1.1.1.3131.X64

Petrosite.v5.5 1CD(测井处理软件)\SAS JMP Statistical Discovery 11.0\Surfseis v1.5-ISO 1CD\TRimble TerraModel v10.50-J\VisiMix.Turbulent.SV.2007.Win32 1CD\彩路服装设计\钻井工程分析设计 SPT Drillbench 6.1\ Bentley.Limcon.03.63.01.14 1CD Bentley.Microstran.Advanced.09.20.0

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

EFI Colorproof XF v5.0 MacOSX 2DVD

HELiOS v2014 SP1 Win32_64 2CD CAMWorks.2014.SP2.2.Win32_64 2DVD Integrated Engineering Software Visual Analysis v11.00.0008 1CD SIDRA TRIP 1.1 1CD Sincpac C3D v3.7.5297 for Civil 3D 2014 and 2015 Win64 1CD Delcam.FeatureCAM.2014.R3.SP2.Win32_64 2DVD

钻井工程分析设计 SPT Drillbench 6.1

Aspen Technology AspenONE v8.6-ISO 3DVD CadSoft.Eagle.Professional.v6.6.0.Multilingual.Windows 1CD Materialise.Mimics.Innovation.Suite.v17.0.Medical.&.Research.Win32_64 4CD AVL Suite 2014.0 (Workspace Suite 2014.0) Win32_64-ISO 1DVD JKTech.JKSimMet.v