PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 5463|回复: 4

[转]学习HALCON软件的心得体会

[复制链接]
发表于 2010-3-2 20:54:00 | 显示全部楼层 |阅读模式
2005年10月12日这一天让我有幸结识了HALCON软件,这天我参加了中国大恒(集团)有限公司北京图像视觉技术分公司在武汉理工大学余家头校区举办的机器视觉技术及其应用研讨会。其实心里早想着去参加机器视觉相关的研讨会,对机器视觉应用有个感性认识。那次去了感觉收获挺大的,至少对这个软件产生了兴趣。 HALCON软件是一个机器视觉开发软件,当时在网上看到一则新闻说世界上最强大的机器视觉软件登陆中国,心想真有那么强大么?带着对新生事物的好奇心,我开始接触这个软件。在学习过程中碰到了许多困难,在大恒的张乐大哥的帮助下,我不仅克服了那些困难,而且还积累了不少经验,在这里愿与学习这个软件的朋友们分享。 HALCON软件是德国MVTec公司(http://www.mvtec.com/halcon/)设计的一套机器视觉软件,HALCON是在世界范围内广泛使用的机器视觉软件。用户可以利用其开放式结构快速开发图像处理和机器视觉应用软件。具体的介绍我就不说了,可以到下面这个网站去浏览。(http://www.daheng-image.com/device_sw_halcon.htm) 刚接触一个新软件,习惯的做法就是先打开主界面玩玩,对一些菜单熟悉一下,由于没有中文使用手册和相关的应用指导书,我不得不去看英文的使用手册,我想要看完手册肯定花不少时间,而且也不一定能全部领会。于是我直接看它的例子,我先把例子抄下来,然后依着葫芦画瓢,也许你会觉得这会非常的容易,但出乎我的意料,因为对里面的函数不熟悉,而且函数在菜单中的对应位置也不清楚。因此我不得不在下拉菜单里一一寻找,但函数之多,虽谈不上大海捞针,但也并非易事,为了找一个函数有时得把整个菜单翻遍。后来听说可以在函数设置中可以通过输入函数名来直接获得此函数的调用,看起来这个似乎聪明多了,但我还是坚持去找,因为我发觉我找的次数多了,渐渐的对这个函数的印象也加深了,在后来再遇到同样函数时,我可以一下就能确定此位置,同时通过看函数定义,对这个函数的功能也了如于心。作为初学者,应该不怕吃苦,因为一份耕耘,一份收获! 如何打开自己的图像?在接下来的学习中,我发觉算法里用的图像都是在HALCON软件里面的,能不能改变路径打开其他的图像呢?我试着直接在read_image的参数中填入'E:\杨富森\HALcon例子\ROI’,结果却出现错误。当时我想是不是要把图片放到HALCON安装目录下呢,但我觉得这样也太麻烦了。后来通过请教才知道是可以的,把参数改为’ E:/杨富森/HALcon例子/ROI’,这样问题解决了,还有一种表示方式'E:\\杨富森\\HALcon例子\\ROI'。接着我又逐渐学会了使用for语句,变量i应该写在第四个参数的位置;如何在图片上设置文字(set_tposition,write_string),任意设置颜色、字体(dev_set_color,set_font)。 Tuple变量的困惑?在看函数的说明时碰到了tuple这个单词,当时用词典查居然没有,我就纳闷这是什么意思呢。后来通过学习才知道它是HALCON中定义的一个变量,一个tuple长度可理解为一个原子值,一个tuple可能由不同类型的数据组成。标准的tuple是一系列包含括弧的元素,它可以表示一个区域,可以对tuple变量进行算术运算、位运算、数学形态学运算等等。其实HALCON中很多都是对tuple变量进行操作,insert和assign在使用上是不同的,Areas[Radius-1]:=Area,这条语句就使用insert(Areas,Area,Radius-1,Areas),用insert构造一个tuple,通常使用一个初始值作为一个空的tuple。而assign是对变量赋值,有时不能混淆。 如何选择一个对象?在例子3-1中遇到这样一条语句:NumSingle:=|SmallSinge|,我以为是简单的赋值,结果我又遇到了阻碍,用assign不能获得上述表达,后来通过请教知道了是对对象统计数目,用count_obj来完成,如释重负,以为以后碰到这样的都可以这样解决了,但我高兴的早了。InitialComponents:=[ InitialComponents, InitialComponent]这条语句又让我犯愁了,后来才知道是连接对象,用concat_obj来执行。针对对象的操作要和assign语句区分开,当然最好是熟悉函数中使用的变量的用途。 如何自定义函数?在例子中碰到一些函数,前面都带有一个星号,比如print_mouse_message(),这些函数不知道如何获得。后来才知道是通过自定义函数获得的,在procedures的下拉菜单中使用create,我知道可以定义函数,但不知道函数体如何去添加呢,这个问题我现在还没有解决,我还没有看完后面的其他语言编程,不知你们知道么,希望能教我一下。 通过一系列的练习,对HALCON的使用掌握了,也感受到它的优点。我利用它进行形状匹配,认真学习了里面的函数,并对函数参数进行了实验,也总结出一些经验,以后再不断完善后添加进来。不知你们都有什么好的心得体会,不妨交流一下。 通过这段时间的学习,我体会出学习一个软件并不难,难在如何更好的利用这个软件来做应用。机器视觉的应用领域比较广泛,但整个系统并没有完善,离广泛的应用还存在较远的距离,它需要和实际结合起来,量体裁衣。我对机器视觉产生了兴趣,很高兴能从事机器视觉的研究,希望自己能在这个领域有所成果,伴随着机器视觉在中国的成长并走向成熟,我正在成长的路上。。。。。
回复

使用道具 举报

发表于 2010-12-15 20:00:00 | 显示全部楼层
我才开始了解
回复 支持 反对

使用道具 举报

自动化招聘网 该用户已被删除
发表于 2011-4-21 17:15:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2011-12-13 13:40:00 | 显示全部楼层
看了一遍 有点乱
回复 支持 反对

使用道具 举报

发表于 2014-2-7 19:11:25 | 显示全部楼层
希望楼主介绍一下,学习机器视觉需要哪些基础知识,能否上传分享?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-9-19 09:03 , Processed in 0.044991 second(s), 25 queries .

快速回复 返回顶部 返回列表