c# 联合halcon 基于相关性 模板匹配_机器视觉halcon学习系列—XLD的介绍和使用

c# 联合halcon 基于相关性 模板匹配_机器视觉halcon学习系列—XLD的介绍和使用定义XLD是eXtendedLineDescription的缩写,中文你可以直译过来解释为扩展线的描述,XLD可以来表达轮廓和多边形数据

88b7e881c3d43b31060c42a6c314dbd6.gif

定义

XLD是eXtended Line Description的缩写,中文你可以直译过来解释为 扩展线的描述,XLD可以来表达轮廓和多边形数据。XLD属于图像变量,轮廓是一系列的二维点组成,一系列点连接成线,这里的可以看到这些连接的线是从像素中穿过去的,我们叫这是亚像素精度(sub_pixel),在halcon中,XLD不仅包括点集,而且XLD里面保存了局部和全局的属性,典型的属性有点的幅度以及轮廓分割的回归参数

14a31714477a238616e0296788e1e04d.png

XLD轮廓

在halcon中,还可以对轮廓XLD进行一系列的处理,例如可以通过select_shape_xld选择特定的特征对象XLD,还可以segment_contour_xld来把轮廓分割,还可以把union_*_contours_xld一系列算子对轮廓进行合并等操作。

我们认识了XLD之后,我们可以使用XLD拿来干嘛呢? XLD可以用来做测量,XLD创建模板,XLD可以用来拟合直线等。

获取XLD

在获取XLD中,一种是交互式画XLD,draw_xld,这种方式在实际基本没有使用,意义不大。还有一种是通过read_contour_xld_dxf读取XLD,这是通过CAD画的轮廓图,或者通过write_contour_xld_dxf写入的轮廓,这里面可能在某些应用中会使用,前期通过CAD建模,读取到XLD后我们就可以拿来用作匹配的轮廓。

82e9f391fee4052130ea980fd2db3e25.gif

xld保存

131fab64f46c22dccd2bfd34588aeba2.png

dxf轮廓转换

还有一种方式是直接通过算法来获取XLD轮廓,在这里是基于亚像素的轮廓,对应着有彩色图像和灰度图像的获取。edge_color_sub_pix、edges_sub_pix,这两个算子我们会经常使用。

我们还可以通过gen_contour_*_xld系列算子来转换成XLD,只不过,在这里有些是亚像素精度,有些是像素精度。

当我们得到轮廓后,还需要对轮廓进行修饰,常用的使用select_shap_xld,主要的特征有四类,基本、形状、点、moments等特征。

78d0a1da06187fb491174d2c062cce45.png

select_shape_xld

有时候也需要对轮廓进行分割,通过segment_contours_xld来进行分割,获取特定轮廓的坐标点通过get_contour_xld算子获取,这个算子输出轮廓的坐标点集,我们可以使用这些点集来进行特定的应用,可以是拟合直线、拟合圆、判断最大最小值,这就是你的业务逻辑的事情了。

总结一下,XLD是halcon里面的一种数据格式,把点集封装了一下,点集连接成线,这些点集有一些自己的特性,halcon已经封装好了,XLD在应用中是广泛使用的一种工具,用来分割图像特征,学会使用XLD工具会给我们工作带来极大的便利。

今天的文章
c# 联合halcon 基于相关性 模板匹配_机器视觉halcon学习系列—XLD的介绍和使用分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/81276.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注