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
C#应用视频教程3.2 Halcon软件测试的更多相关文章
- C#应用视频教程3.4 Halcon+C#测试
有了前面的基础后,我们来测试一下如何把程序做的更通用,首先是把初始化的方法修改一下,在初始化的时候传递过去HTuple这个对象(改成了全局的变量,以便于不同的方法调用) 其次需要有相机打开/相机关 ...
- C#应用视频教程3.3 Halcon+C#测试
接下来我们考虑把Halcon的代码移植到C#程序上,首先找到halcon的dll(.NET类库有1.0,2.0,3.5的,如果你安装了更新版本的halcon则有更新的.NET类库,我们复制最新的dll ...
- halcon视频教程如何学习?怎么样才能踏入机器视觉这个行业?
本人是工作八年的视觉工程师,主要从事Halcon和Visionpro视觉开发,谈谈个人对视觉学习看法: 1.HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,它节约了产品成本,缩短 ...
- Halcon介绍和下载安装视频教程
------------------------Halcon,Visionpro高清视频教程,点击下载视频--------------------------
- Halcon学习网
重码网是一个在线机器视觉学习网站,推出了Halcon,Visionpro机器视觉学习视频教程,视频内容通俗易懂,没有编程基础的同学,照着视频练习,也同样可以学会. 学机器视觉,拿高薪,成就技术大拿.重 ...
- Halcon算子解释
Halcon算子解释大全 Halcon/Visionpro视频教程和资料,请访问 重码网,网址: http://www.211code.com Chapter 1 :Classification 1. ...
- Halcon图像采集助手提示找不到指定DLL文件
问题原因: Halcon软件更新导致某些图像采集DLL失效,这个时候就需要去MVTEC官网下载图像采集接口补丁程序,MVTEC官网地址http://www.mvtec.com/. 对于其他模块失效的D ...
- halcon基础应用和方法经验分享
halcon基础应用和方法经验分享 一.Halcon软件 的安装 安装一直点下一步就好了,这个过程很简单,就不讲了 二.Halcon软件license安装 Halcon是商业视觉软件,是需要收费的,但 ...
- Halcon和visionPro的比较
很多朋友会问到visionpro和halcon这两款机器视觉软件,到底学哪个好呢,今天重码网就给大家讲一讲: 首先比较下两者的优缺点: halcon: 提供的图像算法要比Visionpro多,也就是说 ...
随机推荐
- Tomcat在Eclips中的使用及注意细节
1.运行环境,先配置Eclips Eclips中的Windows→ preferences→弹出框左边Server→Runtime Environments→右边Add添加需要的Apach Tomca ...
- 常见http错误码
一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 详细分解: 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明 ...
- 2016 湖南省省赛B题《有向无环图》
题目链接[https://vjudge.net/problem/CSU-1804] 题意: 给出一个有向无环图,然后让你算下面的结果,count(i,j)表示i->j之间的路径条数. 题解: 根 ...
- 【BZOJ 3294】 3294: [Cqoi2011]放棋子 (DP+组合数学+容斥原理)
3294: [Cqoi2011]放棋子 Description Input 输入第一行为两个整数n, m, c,即行数.列数和棋子的颜色数.第二行包含c个正整数,即每个颜色的棋子数.所有颜色的棋子总数 ...
- 【UOJ244】[UER7]短路
[题目大意] (2n+1)*(2n+1)的矩形,由里到外每一层都有一个相同的值.问从左上走到右小经过的点累和的最小值. [思路] 一眼就是贪心.首先能够想到的是,权值最小的那些边要尽可能夺走,所以必定 ...
- 对Java Serializable(序列化)的理解和总结(一)
导读:最近在做项目的过程中,发现一个问题,就是我们最开始的时候,传递参数包括返回类型,都有map类型.但是由于map每次都要匹配key值,很麻烦.所以在之后就将参数传递和返回类型全都改成了实体bean ...
- web.xml2.3配置需要注意的顺序问题
今天在做一个街道办事处项目时,用了eWebeditor编辑器,在按照说明文件进行web.xml配置时,在<web-app>一行上出现红叉,提示信息为:The content of elem ...
- HBase EndPoint加载失败
概述 参考博客(http://blog.csdn.net/carl810224/article/details/52224441)编写EndPoint协处理器,编写完成后使用Maven打包(使用ass ...
- UESTC 2015dp专题 j 男神的约会 bfs
男神的约会 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/65 Descri ...
- Windows Sysinternals Suite
Windows Sysinternals Suite 是一套由微软官方免费提供的系统工具集,其中包含了大量超级实的优秀绿色小软件,譬如 Desktops (虚拟桌面).Process Explorer ...