第四节 halcon例程1: ball_seq.hdev
小弟写这本书的初衷是为了授之以渔。到上一节结束,已经讲完大致的打渔流程了,但是,学会了怎么打渔,不代表你就能干的过打了几十年鱼的老渔民,咱们还得打怪升级,扎实我们的基本功。毕竟halcon有2000个左右的算子+函数,重点掌握这些才是学会halcon的关键。所以从这一节开始,我们要陆续打怪。一来学习一些新算子,二来学习一些解题思路。方便以后可以移植到我们自己的项目中。
那么我们直接进入正题吧。Halcon不得不说是一款很贴心的软件,考虑到大伙儿上手难,它还精心为我们准备了一大堆的例子用来学习。可惜即使如此,自学还是有点难,所以我这本入门书籍的作用就体现出来了~~单击halcon主界面的"文件"栏,第三项"浏览HDevelop示例程序"。点击后会弹出下框(3-4-1):
![2bbb35b89b74086011c147472b15c5de.png](https://i-blog.csdnimg.cn/blog_migrate/bf48a988e1df7fc8b77804825cecfc08.jpeg)
图 3-4-1
左边是对例子的分类,右边是例程的名称以及简述,在右边最上方有搜索栏可以迅速搜索到你要的例程,当然他的搜索范围是你左边选中的那个类,如果你要在所有的例程里面搜索,左边就选最上面的"应用范围",这算是小细节了。上图(3-4-1)中红框就是我们这一节要讲解的例程了。你点开它,就可以看到这个例子。下面我们一起来学习它!
这个例子的目的是:从电路板上找到球焊的地方。即下面几张图(3-4-2,3-4-3,3-4-4,3-4-5)中带有尾巴的黑色圆形的前端部分。
![fcfbb8e31519ef4eec1f7723cf020fb4.png](https://i-blog.csdnimg.cn/blog_migrate/fc1b32060732e94b5702310c99afca42.jpeg)
图 3-4-2
![6d0a0e38cbf8e593de652b8db3e4db74.png](https://i-blog.csdnimg.cn/blog_migrate/bb021d500ed6ce0f56d586f48d83534b.jpeg)
图 3-4-3
![458e8f713cdf0f06d4535f433691fdd0.png](https://i-blog.csdnimg.cn/blog_migrate/fea087ab2f91b8d0bf9d27f61cd3dd59.jpeg)
图 3-4-4
![f7fb31237fe1ce0c3192eff1915ec5d3.png](https://i-blog.csdnimg.cn/blog_migrate/3dfdf4573eda1a3e7cce79505d1ad699.jpeg)
图 3-4-5
仔细观察这几张图,最先想到的思路应该是通过灰度值来找球焊。因为球焊的位置乌漆嘛黑,通过灰度值筛选还是可以筛出来的。但是又有几处干扰比较尴尬,比如球焊后面的黑线,电路板上矩形的黑块,以及电路板外面黑色部分。该怎么筛选才能去掉这些干扰呢?你可以自己先思考一下。这儿就是思路,有好的思路可以减少很多算法步骤。对于上面几个干扰,本例程用了很聪明的思路去规避,容我先卖个关子,接下来一一讲解。