变换
平滑轮廓:smooth_contours
算子:smooth_contours_xld(Contours : SmoothedContours : NumRegrPoints : )
示例:smooth_contours_xld (Border, SmoothedContours, 11)
Border(输入对象):输入轮廓对象
SmoothedContours(输出对象):输出平滑后的轮廓
11(输入控制参数):数值越大越平滑
形状变换:shape_trans_xld
算子:shape_trans_xld(XLD : XLDTrans : Type : )
示例:shape_trans_xld (ContCircle, XLDTrans, 'rectangle1')
ContCircle(输入对象):输入轮廓对象
XLDTrans(输出对象):输出变形后的轮廓
'rectangle1'(输入控制参数):输入需要变形的类型
注意:区域圆变形为椭圆 结果还是圆 轮廓圆变形为椭圆 结果是点
封闭轮廓:close_contours_xld
算子:close_contours_xld(Contours : ClosedContours : : )
示例:close_contours_xld (Contours, ClosedContours)
Contours(输入对象):输入轮廓对象
ClosedContours(输出对象):输出封闭后的轮廓对象
对轮廓排序:sort_contours_xld
算子:sort_contours_xld(Contours : SortedContours : SortMode, Order, RowOrCol : )
示例:sort_contours_xld (ContoursSplit, SortedContours, 'upper_left', 'true', 'column')
ContoursSplit(输入对象):输入包含多个轮廓的对象
SortedContours(输出对象):输出排序轮廓对象
'upper_left'(输入控制参数1):排序方法
'true'(输入控制参数2):升序true或者是降序false
'column'(输入控制参数3):按照行或者列排序
分割
按直线和圆弧的特性分割轮廓:segment_contours_xld
算子:segment_contours_xld(Contours : ContoursSplit : Mode, SmoothCont, MaxLineDist1, MaxLineDist2 : )
示例:segment_contours_xld (Contours1, ContoursSplit, 'lines_circles', 5, 4, 2)
Contours1(输入对象):输入轮廓对象
ContoursSplit(输出对象):输出分割后的对象
'lines_circles'(输入控制参数1):输入分割类型
5(输入控制参数2):控制轮廓分割的细节 数值越大 分割的线段越多
4(输入控制参数3):与轮廓拟合参数一 参数越大有角度的轮廓合并的越多
2(输入控制参数4):与轮廓拟合参数二 对参数三进行补充
合并
合并端点临近的轮廓:union_adjacent_contours_xld
算子:union_adjacent_contours_xld(Contours : UnionContours : MaxDistAbs, MaxDistRel, Mode : )
示例:union_adjacent_contours_xld (ContoursSplit, UnionContours, 10, 1, 'attr_keep')
ContoursSplit(输入对象):输入轮廓对象
UnionContours(输出对象):输出合并的轮廓对象
10(输入控制参数1):两个轮廓端点间的最小距离控制参数
1(输入控制参数2):两个轮廓端点间的最小距离与最长轮廓长度的比值控制参数
'attr_keep'(输入控制参数3):定义轮廓属性处理的模式,即,是否保留或丢弃轮廓属性(默认)
合并位于同一条直线上的轮廓:union_collinear_contours_xld
资料扩展:https://blog.csdn.net/qq_18620653/article/details/105518295