当前位置: 首页 > 工具软件 > XLD > 使用案例 >

Halcon知识: XLD的概念

颛孙镜
2023-12-01

一、halcon中XLD的概念与应用,

1.1  halcon中什么是XLD?
       XLD(eXtended Line Descriptions):XDL就是一个轮廓函数,它不是基于像素,人们通常称他为亚像素,只不过它比像素更精确,可以精确到像素内部的一种描述。
       在Halcon中,使用XLD表示亚像素的轮廓和多边形。常用edges_sub_pix算子来提取亚像素轮廓。
       我们都知道图片是由像素组成,当我们用halcon读取图像Image或者region的时候,获得的数据就是像素。这些数据结构都是像素级别的。
       获得图像后,我们可以通过亚像素阈值分割或者亚像素边缘提取,这样这些处理得到的结果其实就是用亚像素轮廓来表示。。
       上述所述亚像素轮廓其实在halcon中指的就是xld,它可以表示直线或多边形,是一组有序的控制点集合,控制点顺序用来说明彼此相连的关系。

亚像素的轮廓可以分为两种: 1.闭轮廓:首尾相交; 2.开轮廓:首尾不相交

二、XLD相关算子

从区域中提取XLD

  • select_shape_xld 、
  • Select_Contours_xld、
  • area_center_xld、
  • shape_trans_xld

XLD的拟合操作:所谓拟合就是从像素的集合中,提取出相应几何形状,具体算子如下:

  • fit_line_contour_xld:拟合直线
  • fit_circle_contour_xld:拟合圆
  • fit_ellipse_contour_xld:拟合椭圆
  • fit_retangle2_contour_xld:拟合矩形

三.XLD的应用

3.1 生成XLD的操作

 threshold_sub_pix(Image:Boreder:Threshold:提取xld并不是沿着像素与像素边界交界的地方,而是halcon经过某种计算得出的位置(一种描述)。其中Threshold为提取xld的阈值,灰度值以阈值为界提取xld。

xld的特征部分和region有很多相同的部分:
1.基础特征:xld面积,中心,宽高,左上角及右下角坐标。
2.形状特征:圆度,紧密度,长度,矩形度,凸性,偏心率,蓬松度(bulkiness),外接圆半径,外接矩形的方向及两边长度等。
3.云点特征:云点面积,中心,等效椭圆半轴及角度,云点方向等。
4.几何特征:二阶矩等。

3.2 选取特定xld 

  • select_shape_xld(XLD:SelectedXLD:Features,Operation,Min,Max

功能:选择特定形状特征要求的xld轮廓或多边形
算子参数:
XLD:要提取的XLD
SelectedXLD:提取到的XLD
Features:提取XLD的特征依据
Operation:特征之间的逻辑关系(and or)
Min,Max:特征值的要求范围

  • Select_Contours_xld(Contours:SelectedContours:Features,Min,Max,Min2,Max2


作用:选择多种特征要求的XLD轮廓 (如长度 开闭 方向 等特征,不支持多边形)
算子参数:
Contours:要提取的XLD轮廓
SelectedContours:提取到的XLD轮廓
Features:提取XLD轮廓的依据(筛选)
Min,Max,Min2,Max2:特征值的范围

  • area_center_xld(XLD:::Area,Row,Column,PointOrder)

作用:计算xld的面积和中心位置

3.3 XLD的合并操作

合并是指XLD的元组中,将相邻部分合并成一个

  • union_collinear_contours_xld:合并在同一直线的XLD
  • union_cocircular_contours_xld:合并在同圆的XLD
  • union_adjacent_contours_xld:合并邻近的XLD

把XLD转换成其他规则形状的XLD,相应说明及算子和region的很类似:

1.convex hull
2.outer_circle
3.retangle1
4.retangle2

这四种类型转换使用同一个算子:

  • shape_trans_xld(XLD:XLDTrans:Type:)

作用:转换XLD的形状,其中Type为转换的类型如上面的四种类型

XLD的分割操作
算子:

  • segment_contours_xld(Contours:ContoursSplit:Mode,SmoothCont,Max,LineDist1,MaxLineDist2:)

 类似资料: