Halcon学习教程一之提取十字线中心 图像分割

发布时间 2023-03-28 19:24:34作者: aircraft

  原文作者:aircraft

  原文链接:https://www.cnblogs.com/DOMLX/p/17266405.html

  

 

废话不多说,因为毕业后工作原因比较忙,好久没更新博客了,直接上图。。。

 

 

上图有个十字线,我们要提取出十字线的中心(Hhhh这个线是我随手画的 没画直!!)

第一步:肯定是读取图像进行灰度提取处理啦。

 

 

 

目前我们已经把十字线提取出来了。

 

第二步:单独提取横线和竖线的区域出来

 

 

 

 

 

这里提取有很多种方法,我们用的是开运算,通过控制滤波核的尺寸将横线,和竖线都进行一次单独的过滤。这样我们就分别得到了十字线的横线区域

 

和竖线区域了。

 

 

 

第三步:求两线的交集部分即十字线的交点位置

 

 

 

 

 

那么这里我们就将十字线的中心提取出来了。然后可以看看中心的坐标位置是什么

 

 

 

 

 

代码如下:

 

 

read_image (Image, 'C:/Users/xujh131042/Pictures/十字线.PNG')
threshold(Image, Region, 0, 10)


opening_rectangle1 (Region, RegionOpening1, 1, 5)
opening_rectangle1 (Region, RegionOpening2, 5, 1)

intersection (RegionOpening1, RegionOpening2, RegionIntersection)

area_center (RegionIntersection, Area, Row, Column)

 

 

当然这里也可以用局部阈值分割来提取出十字线

 

 

 

代码如下:

read_image (Image, 'C:/Users/xujh131042/Pictures/十字线.PNG')
mean_image (Image, ImageMean, 6, 6)
dyn_threshold (Image, ImageMean, RegionDynThresh, 5, 'dark')

opening_rectangle1 (RegionDynThresh, RegionOpening1, 1, 5)
opening_rectangle1 (RegionDynThresh, RegionOpening2, 5, 1)

intersection (RegionOpening1, RegionOpening2, RegionIntersection)

area_center (RegionIntersection, Area, Row, Column)

 

 

 

 

 

 

 

 

 

若有兴趣交流分享技术,可关注本人公众号,里面会不定期的分享各种编程教程,和共享源码,诸如研究分享关于c/c++,python,前端,后端,opencv,halcon,opengl,机器学习深度学习之类有关于基础编程,图像处理和机器视觉开发的知识