这是halcon网站上疑难解答篇一网友的问题。
其实这个楼主的这个帖子很早就发出来了,昨天我闲的没事去网站上才看到它
项目要求是找到螺母上的十字中心
我所使用的开发工具版本是halcon12。
上项目图:
(1)
(2)
(3)
想法与思路:
第一步是不用想的,通过阈值分割确定ROI(感兴趣区域),也就是这个螺母头:
拿到ROI图像后我们再进行观察,很明显的中间有个十字,也就是说我们可以先拿到中间的十字区域。但很不巧寻常的阈值分割拿到的十字区域不完整,尤其是涉及到第二张原图和第三张原图时:
通过局部阈值分割得到的第三幅原图的螺母图像区域:
具有完美主义思想的我第一时间想到的是Region因该具备向相进的区域生长的算子,可惜在这个版本中没有找到,既然这样,那就换个思路。我记得在以前的一个项目中使用过共线连接,共线连接是基于XLD共切延长线进行XLD片段连接的,刚好这里没有区域的共线连接那我可以巧妙的使用XLD的共线连接。于是,通过区域转骨架再转XLD进行共线连接便得到了较为完美的十字:
这下事情就变得非常的简单了,通过交集算子得到十字中心点,再通过计算斜率的算子算出倾斜角。
最终结果:
(1)
(2)
(3)