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多,也就是说 ...
随机推荐
- misaka and last order SCU - 4489 (筛法的灵活应用)
Time Limit: 1000 MS Memory Limit: 131072 K Description Misaka Mikoto is a main character of the Anim ...
- python @classmethod 的使用场合
python @classmethod 的使用场合 官方的说法: classmethod(function)中文说明:classmethod是用来指定一个类的方法为类方法,没有此参数指定的类的方法为实 ...
- PHP变量的使用
如果在用到数据时,需要用到多次就声明为变量使用: 变量的声明 $变量名=值 强类型语言中(C,Java),声明变量一定要先指定类型(酒瓶) PHP是弱类型的语言:变量的类型有存储的值决定.(瓶子) 2 ...
- 【Splay 总结】
很多年前学的splay已经忘了? BZOJ 3729 要用Splay啊哭..强制在线.. 二叉查找树 二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree ...
- BZOJ2157: 旅游 树链剖分 线段树
http://www.lydsy.com/JudgeOnline/problem.php?id=2157 在对树中数据进行改动的时候需要很多pushdown(具体操作见代码),不然会wa,大概原因 ...
- 字符约束条件的SQL注入攻击
引言 目前值得高兴的是,开发者在建立网站时,已经开始关注安全问题了——几乎每个开发者都知道SQL注入漏洞了.在本文中,我将为读者介绍另一种与SQL数据库相关的漏洞,虽然它的危害性与SQL注入不相上下, ...
- ElasticSearch学习笔记--2、ES相关配置
1.配置文件 ES的配置文件位置:config/elasticsearch.yml可以直接搜索elasticsearch.yml 2.配置远程api访问 network.host: 192.168.1 ...
- Java后台直接生成二维码介绍
Java后台直接生成二维码 1.其实jquery也可以直接生成二维码的,但我测试的时候,二维码生成后太模糊,难以识别.所以在这里介绍在后来生成二维码的方式. 2.不善于文字描述,直接上代码了. imp ...
- 常用数据库validationQuery检查语句
数据库 validationQuery Oracle select 1 from dual DB2 select 1 from sysibm.sysdummy1 mysql select 1 mi ...
- [转]android中OnTouch和OnClick、 imagebutton的src和background有什么区别
1.OnTouch和OnClick有何区别? 专业回答 1.onClick就传入一个View对象,而 onTouch要传入一个View 对象和 MotionEvent的对象2.onTouch对控件 ...