Halcon自学笔记1

最近在搞机器视觉的工作,我发现和我想象的不是很一样啊。。。。从零开始学halcon的开发,感觉halcon的开发相对于opencv真的很简单,快赶上可视化界面编程了,不过后期肯定还是要和C++,C#之类进行联合开发的,这个用到再说吧。

之所以说halcon简单基于它强大的封装,大量的功能算子可以直接使用,而且使用界面也及其简化,下面用一个示例介绍一下。

我们要做的就是把上面这个图中的回形针分割并数清楚数量,当然,用opencv很快也可以做出来,滤波-阈值化-轮廓检测,然后就可以得到数量了,但是用halcon会简单的完成这个功能。

最后得到的效果是这个样子的,识别并显示了数量。

read_image (Image, 'C:/Users/41608/Pictures/005AFwmPzy6Kgy9XlFQee&690.jpg')
get_image_size(Image,Witdh,Height)
dev_open_window (0, 0, Witdh/2, Height/2, 'black', WindowHandle)
dev_display(Image)
gauss_filter (Image, ImageGauss, 5)
threshold(ImageGauss,Region, 0, 128)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area_holes', 'and', 150, 99999)
count_obj (SelectedRegions, Number)
set_display_font(WindowHandle, 14, 'mono', 'true', 'false')
dev_set_color('green')
dev_set_line_width(3)
dev_set_draw('margin')
disp_message (WindowHandle, Number, 'window', 12, 12, 'black', 'true')
dev_display(ConnectedRegions)

仅仅几行就可以完成功能,每当你使用一个算子的时候,只需要在算子窗口点击需要的算子,就会出下如下函数参数选择,直接就可以选择函数内的参数,并带有少量解析,非常方便。

但是halcon的教程并没有opencv那么多,还需要自己多研究,某些没有封装的功能还得使用opencv去完成,慢慢琢磨吧。。。。蛋疼。

猜你喜欢

转载自blog.csdn.net/wi162yyxq/article/details/88662354