基于超人视觉启蒙视频——halcon基础1:瓶盖识别

本文是基于超人视觉Halcon启蒙视频所作,此篇是基础的瓶盖识别,主要是根据以下步骤来完成:

1. 连接相机实时采集图像;
2. 二值化;
3. 特征筛选;
4. 求出中心点坐标。

首先在Halcon内新建一个工程,建完之后我们要做的第一步采集图像。这里我是用采集助手实时采集瓶盖,没有设备的同学可以直接找一个比较干净的背景拍个瓶盖,直接用read_image读取图片来识别。

基于超人视觉启蒙视频——halcon基础1:瓶盖识别
打开采集助手后,弹出下面这样的一个窗口。先在资源内选择图像获取接口(I),再点击自动检测接口(t),等待它检测完。我在这里连接的是迈德微视的相机,所以显示是MindVision12是正确的。

基于超人视觉启蒙视频——halcon基础1:瓶盖识别
检测无误后,我们可以去连接那边的窗口看。点击连接,连接后会显示断开,再点击实时,就会发现图像窗口有图像显示了。

基于超人视觉启蒙视频——halcon基础1:瓶盖识别
在这里看到的图像是灰色的,是因为颜色空间我们选择了Gray,所以显示的是灰度图像,把选项改成RGB,然后重新连接再实时就会呈现彩色图像。

基于超人视觉启蒙视频——halcon基础1:瓶盖识别
基于超人视觉启蒙视频——halcon基础1:瓶盖识别
基于超人视觉启蒙视频——halcon基础1:瓶盖识别
得到我们想要的图片效果,我们就可以插入代码了。运行代码,我们的第一步实时采集图像就完成了。

基于超人视觉启蒙视频——halcon基础1:瓶盖识别
基于超人视觉启蒙视频——halcon基础1:瓶盖识别
基于超人视觉启蒙视频——halcon基础1:瓶盖识别
现在我们运行代码会发现图像窗口并没有图像,所以我们还要加一句代码dev_display来显示实时采集出来的图。

基于超人视觉启蒙视频——halcon基础1:瓶盖识别
采集到图像之后,我们应该对图像进行二值化。但在二值化之前应该灰度化,因为我们采集的是彩色图像,要用rgb1_to_gray将24位的彩色图像转为8位的灰度图。

基于超人视觉启蒙视频——halcon基础1:瓶盖识别
然后进行二值化

基于超人视觉启蒙视频——halcon基础1:瓶盖识别
调节好二值化阈值,能清晰区分瓶盖后插入代码。再显示二值化区域。

基于超人视觉启蒙视频——halcon基础1:瓶盖识别
二值化完成之后的步骤是要进行特征筛选,但在这之前要把区域断开成不同的连通域用算子connection

基于超人视觉启蒙视频——halcon基础1:瓶盖识别
接着进行特征筛选

基于超人视觉启蒙视频——halcon基础1:瓶盖识别
基于超人视觉启蒙视频——halcon基础1:瓶盖识别
基于超人视觉启蒙视频——halcon基础1:瓶盖识别
得到瓶盖后可以用area_center求它的中心点坐标

基于超人视觉启蒙视频——halcon基础1:瓶盖识别
求出中心点后就完成了此次的识别,注意此中心点为像素坐标