基于超人视觉启蒙视频——halcon基础1:瓶盖识别
本文是基于超人视觉Halcon启蒙视频所作,此篇是基础的瓶盖识别,主要是根据以下步骤来完成:
1. 连接相机实时采集图像;
2. 二值化;
3. 特征筛选;
4. 求出中心点坐标。
首先在Halcon内新建一个工程,建完之后我们要做的第一步是采集图像。这里我是用采集助手去实时采集瓶盖,没有设备的同学可以直接找一个比较干净的背景拍个瓶盖,直接用read_image读取图片来识别。
打开采集助手后,弹出下面这样的一个窗口。先在资源内选择图像获取接口(I),再点击自动检测接口(t),等待它检测完。我在这里连接的是迈德微视的相机,所以显示是MindVision12是正确的。
检测无误后,我们可以去连接那边的窗口看。点击连接,连接后会显示断开,再点击实时,就会发现图像窗口有图像显示了。
在这里看到的图像是灰色的,是因为颜色空间我们选择了Gray,所以显示的是灰度图像,把选项改成RGB,然后重新连接再实时就会呈现彩色图像。
得到我们想要的图片效果,我们就可以插入代码了。运行代码,我们的第一步实时采集图像就完成了。
现在我们运行代码会发现图像窗口并没有图像,所以我们还要加一句代码dev_display来显示实时采集出来的图。
采集到图像之后,我们应该对图像进行二值化。但在二值化之前应该先转灰度化,因为我们采集的是彩色图像,要用rgb1_to_gray将24位的彩色图像转为8位的灰度图。
然后进行二值化。
调节好二值化阈值,能清晰区分瓶盖后插入代码。再显示二值化区域。
二值化完成之后的步骤是要进行特征筛选,但在这之前要把区域断开成不同的连通域用算子connection。
接着进行特征筛选。
得到瓶盖后可以用area_center求它的中心点坐标。
求出中心点后就完成了此次的识别,注意此中心点为像素坐标。