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

邮箱:acetaohai123@163.com

 

 

 

 

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

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

    有了前面的基础后,我们来测试一下如何把程序做的更通用,首先是把初始化的方法修改一下,在初始化的时候传递过去HTuple这个对象(改成了全局的变量,以便于不同的方法调用)   其次需要有相机打开/相机关 ...

  2. C#应用视频教程3.3 Halcon+C#测试

    接下来我们考虑把Halcon的代码移植到C#程序上,首先找到halcon的dll(.NET类库有1.0,2.0,3.5的,如果你安装了更新版本的halcon则有更新的.NET类库,我们复制最新的dll ...

  3. halcon视频教程如何学习?怎么样才能踏入机器视觉这个行业?

    本人是工作八年的视觉工程师,主要从事Halcon和Visionpro视觉开发,谈谈个人对视觉学习看法: 1.HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,它节约了产品成本,缩短 ...

  4. Halcon介绍和下载安装视频教程

    ------------------------Halcon,Visionpro高清视频教程,点击下载视频--------------------------

  5. Halcon学习网

    重码网是一个在线机器视觉学习网站,推出了Halcon,Visionpro机器视觉学习视频教程,视频内容通俗易懂,没有编程基础的同学,照着视频练习,也同样可以学会. 学机器视觉,拿高薪,成就技术大拿.重 ...

  6. Halcon算子解释

    Halcon算子解释大全 Halcon/Visionpro视频教程和资料,请访问 重码网,网址: http://www.211code.com Chapter 1 :Classification 1. ...

  7. Halcon图像采集助手提示找不到指定DLL文件

    问题原因: Halcon软件更新导致某些图像采集DLL失效,这个时候就需要去MVTEC官网下载图像采集接口补丁程序,MVTEC官网地址http://www.mvtec.com/. 对于其他模块失效的D ...

  8. halcon基础应用和方法经验分享

    halcon基础应用和方法经验分享 一.Halcon软件 的安装 安装一直点下一步就好了,这个过程很简单,就不讲了 二.Halcon软件license安装 Halcon是商业视觉软件,是需要收费的,但 ...

  9. Halcon和visionPro的比较

    很多朋友会问到visionpro和halcon这两款机器视觉软件,到底学哪个好呢,今天重码网就给大家讲一讲: 首先比较下两者的优缺点: halcon: 提供的图像算法要比Visionpro多,也就是说 ...

随机推荐

  1. innerText和innerHTML, outerHTML

    js中 innerHTML与innerText的用法与区别及解决Firefox不支持Js的InnerHtml问题 用法: <div id="test"> <spa ...

  2. 运用jquery做打印和导出操作

    我最近接手的项目中经常让做出打印和导出统计图和表格 首先说打印,打印如果用echarts做出来的图表,打印的时候,要借助jquery的打印插件. 打印插件: <script src=" ...

  3. FastReport.Net使用:[3]简单报表一

    如何设置报表栏 1.右键报表栏相关模块进行删除. 2.使用菜单栏中的报表菜单进行添加/删除相应的栏目,选中栏目的背景会变得高亮. 3.使用报表栏编辑器. 可通过点击报表栏顶部的“设置报表栏”或者菜单栏 ...

  4. 51Nod1962 区间计数

    这题与之前那道区间最值的题非常类似,依旧是二分区间,然后统计跨过中间点的区间贡献. 我们要选出小于等于和小于的,这样就可以算出相等的区间长了. 复杂度O(nlogn) By:大奕哥 #include& ...

  5. HDU 2157 How many ways?? (邻接矩阵快速幂)

    http://acm.hdu.edu.cn/showproblem.php?pid=2157 题意 : 给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值   从这道题 ...

  6. [GCJ2017R3]Cooclement

    题目大意: 一种数列按照如下方式变化: 新数列第i位等于原数中数字i的出现次数. 变化过程中数列长度不变. 例如数列12的变化过程为12-11-20-01-10. 现在告诉你一个数列x,请求出x可能是 ...

  7. Spring Mvc 前台数据的获取、SpringMvc 表单数据的获取

    首先在web.xml 里面配置一个编码过滤器 <!-- springmvc框架本身没有处理请求编码,我们自己配置一个请求编码过滤器 --> <filter> <filte ...

  8. bzoj 4769: 超级贞鱼 -- 归并排序

    4769: 超级贞鱼 Time Limit: 1 Sec  Memory Limit: 128 MB Description 马达加斯加贞鱼是一种神奇的双脚贞鱼,它们把自己的智慧写在脚上——每只贞鱼的 ...

  9. 安装myeclipse的常见问题

    1.破解myeclipse网站:  https://jingyan.baidu.com/article/acf728fd49519ff8e410a361.html 

  10. April Fools Day Contest 2016 B. Scrambled

    B. Scrambled 题目连接: http://www.codeforces.com/contest/656/problem/B Description Btoh yuo adn yuor roo ...