Halcon union_adjacent_contours_xld详解

union_adjacent_contours_xld

原型

union_adjacent_contours_xld(Contours : UnionContours : MaxDistAbs, MaxDistRel, Mode : )

功能

合并轮廓。

参数列表

Contours (input_object) :输入轮廓
UnionContours (output_object) :合并后输出轮廓
MaxDistAbs (input_control) :两个轮廓端点间的最小距离控制参数
MaxDistRel (input_control) :两个轮廓端点间的最小距离与最长轮廓长度的比值控制参数
Mode (input_control) :定义轮廓属性处理的模式,即,是否保留或丢弃轮廓属性

详解

Halcon union_adjacent_contours_xld详解_第1张图片
Halcon union_adjacent_contours_xld详解_第2张图片
写到这里你可能被halcon官方文档搞晕了,文档里明明对MaxDistAbs、MaxDistRel的论述和算子union_collinear_contours_xld中的论述是一字不差的雷同,但根据union_collinear_contours_xld的理解在这个算子上却完全对不上。是不是很疑惑,是不是开始怀疑人生, 我也困扰了很久。但细心的童鞋会发现halcon文档虽然对这两个参数详解描述相同,但对变量定义的描述却不同。
union_adjacent_contours_xld算子的描述:
Halcon union_adjacent_contours_xld详解_第3张图片
union_collinear_contours_xld算子的描述:
Halcon union_adjacent_contours_xld详解_第4张图片
哎,始终想不通Halcon为啥这样设计文档内容。

举例

MaxDistAbs、MaxDistRel两个参数有一个不满足就不合并。如下图,只要两个参数中的其中一个比设置的临界值小,那么两个轮廓将不会合并。
Halcon union_adjacent_contours_xld详解_第5张图片
如果想对比算子union_collinear_contours_xld的参数设置,可以访问我的另一篇博客。
https://blog.csdn.net/qq_18620653/article/details/105518295

代码

gen_contour_polygon_xld (FirstContour, [500,1000], [1,1])
gen_contour_polygon_xld (SecondContour, [1001,1500], [2,501])
length_xld (FirstContour, FirstLength)
length_xld (SecondContour, SecondLength)
concat_obj (FirstContour, SecondContour, ConcatContour)
union_adjacent_contours_xld (ConcatContour, UnionContours, sqrt(2), 0.0020041, ‘attr_keep’)

你可能感兴趣的:(Halcon,算法)