1.1 halcon中什么是XLD?
XLD(eXtended Line Descriptions):XDL就是一个轮廓函数,它不是基于像素,人们通常称他为亚像素,只不过它比像素更精确,可以精确到像素内部的一种描述。
在Halcon中,使用XLD表示亚像素的轮廓和多边形。常用edges_sub_pix算子来提取亚像素轮廓。
我们都知道图片是由像素组成,当我们用halcon读取图像Image或者region的时候,获得的数据就是像素。这些数据结构都是像素级别的。
获得图像后,我们可以通过亚像素阈值分割或者亚像素边缘提取,这样这些处理得到的结果其实就是用亚像素轮廓来表示。。
上述所述亚像素轮廓其实在halcon中指的就是xld,它可以表示直线或多边形,是一组有序的控制点集合,控制点顺序用来说明彼此相连的关系。
亚像素的轮廓可以分为两种: 1.闭轮廓:首尾相交; 2.开轮廓:首尾不相交
从区域中提取XLD
XLD的拟合操作:所谓拟合就是从像素的集合中,提取出相应几何形状,具体算子如下:
3.1 生成XLD的操作
threshold_sub_pix
(Image
:Boreder
:Threshold
:提取xld并不是沿着像素与像素边界交界的地方,而是halcon经过某种计算得出的位置(一种描述)。其中Threshold为提取xld的阈值,灰度值以阈值为界提取xld。
xld的特征部分和region有很多相同的部分:
1.基础特征:xld面积,中心,宽高,左上角及右下角坐标。
2.形状特征:圆度,紧密度,长度,矩形度,凸性,偏心率,蓬松度(bulkiness),外接圆半径,外接矩形的方向及两边长度等。
3.云点特征:云点面积,中心,等效椭圆半轴及角度,云点方向等。
4.几何特征:二阶矩等。
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的面积和中心位置
合并是指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:)