halcon XLD 常用轮廓函数 (草稿)

select_contours_xld ( Contours : SelectedContours : Feature, Min1,Max1, Min2, Max2 : )
从xld轮廓中提取符合一定条件的轮廓
‘Feature’可以为以下几种:
’contour_length’: 保留在Min1和Max1长度范围内的轮廓。Min2和Max2对于此feature没有作用。
’maximum_extent’: 返回方法同‘contour_length’,但是计算方法不同,在行列方向的八个极值点计算出来的。Min2和Max2对于此feature没有作用。
‘direction’:若轮廓的回归线(regression line)的方向在Min1和Max1中间,则返回;方向为逆时针计算方向。在[0,2pi]之间。Min2和Max2对于此feature没有作用。
’curvature’:若轮廓到其回归线的平均距离在在Min1和Max1中间,并且距离的方差在Min2和Max2中间,则返回。
’closed’:若轮廓的起点到终点的距离不大于Max1的返回,相当于筛选的半开空间,其他参数都用不到。
’open’: 若轮廓的起点到终点的距离大于Min1的返回,其他参数都用不到。


union_adjacent_contours_xld (Contours : UnionContours : MaxDistAbs, MaxDistRel, Mode : )
将端点距离很近的轮廓连接起来
临近两个轮廓的端点的距离既没有超过阈值MaxDistAbs,也没有超过长一点的轮廓长度乘以MaxDistRel(注意这个值貌似指的不是直接阈值,而是用这个值乘以两个轮廓中长的那个的长度的结果作为阈值),则连接。


union_cocircular_contours_xld
将组成同一个圆的轮廓连接起来


union_collinear_contours_xld (
Contours : UnionContours : MaxDistAbs, MaxDistRel, MaxShift,
MaxAngle, Mode : )
将共线的轮廓连接起来
大概位于同一条线上。两个轮廓大致共线的标准是看它们的回归线是否共线。在用这个函数之前,确保输入的都为直线,注意闭合轮廓对于其他任何轮廓都不是共线的。
MaxDistAbs:沿被检测轮廓的回归线方向距离另一轮廓的端点的距离,这个阈值为可接受的最大距离。
MaxDistRel: 距离相对于被检测轮廓的长度
MaxShift:第二个轮廓相对于被检测轮廓回归线的最大距离,测量沿着回归线的垂直方向(是否和MaxDistAbs为一个东西,只不过是两个轮廓互为主被动关系?)。
MaxAngle:两个轮廓回归线的夹角最大值。为弧度值。


union_collinear_contours_ext_xld (
Contours : UnionContours : MaxDistAbs, MaxDistRel, MaxShift,
MaxAngle, MaxOverlap, MaxRegrError, MaxCosts, WeightDist,
WeightShift, WeightAngle, WeightLink, WeightRegr, Mode : )
将共线的轮廓连接起来,是union_collinear_contours_xld函数的扩增版




union_cotangential_contours_xld (
Contours : UnionContours : FitClippingLength, FitLength,
MaxTangAngle, MaxDist, MaxDistPerp, MaxOverlap, Mode : )
连接余切的轮廓
根据轮廓端点的局部曲率计算。
首先,决定每个输入轮廓的结束片段,FitClippingLength参数制定了从轮廓两端端点裁切的欧几里得长度。FitLength,经检查参与连接的结束片段的长度给定(?啥玩意?)
每个轮廓结束处,至少这么多点被指定为结束片段,结束片段长度应大于等于FitLength. 可以用‘auto’这个参数
然后该函数试图将轮廓分割为直线和曲线,然后将第一个和最后一段作为结束片段。
函数对每个结束片段进行圆拟合。


猜你喜欢

转载自blog.csdn.net/foreverhehe716/article/details/44646609