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. 在phpWeChat中生成公众号 jssdk 各个参数(PHP)

    <?php //jsapipara $jsapipara=array(); $jsapipara['appid']=WECHAT_APPID; $jsapipara['noncestr']=cr ...

  2. Am335x u-boot 代码大概流程

    在_面之前的流程和u-boot-spl一样,区别在于_main中. 对于u-boot 2016.03来说 ENTRY(_main) /* * Set up initial C runtime envi ...

  3. 用于解析通过JS的escape函数加密过的数据

    function js_unescape($str) { $ret = ''; $len = strlen($str); for ($i = 0; $i < $len; $i++) { if ( ...

  4. Java Queue的测试

    上传图片没上去,提交的时候已经结束 代码链接

  5. 是否排序好了 Exercise07_19

    import java.util.Scanner; import java.util.Arrays; /** * @author 冰樱梦 * 时间2018年12月 * 题目:是否排序好了 * */ p ...

  6. 三周学会小程序第四讲:Heroku 绑定 Github 自动部署

    这一讲是根据读者的反馈补充的一个讲解,好多读者反应安装 Heroku-cli 遇到问题,或者是操作繁琐,其实上一讲中提到的 Heroku 只是为了免费部署,而安装 Heroku-CLI只是为了部署,所 ...

  7. SPFA cojs 176. [USACO Feb07] 奶牛聚会

    cojs 176. [USACO Feb07] 奶牛聚会 ★☆   输入文件:sparty.in   输出文件:sparty.out   简单对比时间限制:3 s   内存限制:16 MB N(1 ≤ ...

  8. April Fools Day Contest 2016 B. Scrambled

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

  9. Codeforces Round #301 (Div. 2) B. School Marks 构造/贪心

    B. School Marks Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/540/probl ...

  10. linux 环境下git 命令小结

    转载自:http://blog.chinaunix.net/uid-28241959-id-3880025.html 本地建立仓库 先创建个文件夹,仓库的地点: mkdir cangkumkdir C ...