Halcon中轮廓分割segment
2018-12-21
在用Halcon进行图像处理的过程中,经常需要对提取出的轮廓进行分割,将轮廓分为直线段、圆(或圆弧)、椭圆弧不同的段,轮廓分割最常用的算子是segment_contours_xld。
segment_contours_xld——Segment XLD contours into line segments andcircular or elliptic arcs(将一个XLD轮廓分割为直线段、圆(圆弧)、椭圆弧。)
signature(语法):
segment_contours_xld(: : , , , : )
参数说明:
Contours 需要进行分割的轮廓。
ContoursSplit 分割后的轮廓tuple。
Mode 分割轮廓的方式,可以选择"lines"(使用直线段分割), "lines_circles"(使用直线段和圆(弧)分割),"lines_ellipses"(使用直线段和椭圆弧分割)。
SmoothCont 轮廓平滑的参数,可以抑制在折线逼近过程中过短的线段,能更加鲁棒的逼近圆和椭圆。
MaxLineDist1第一次用Ramer算法(即用直线段递进逼近轮廓)时的MaxLineDist,在逼近完成之后,再用圆弧或椭圆弧对相邻分割线段进行拟合,如果拟合圆弧到轮廓的距离小于逼近线段到轮廓的距离,就用圆弧替代逼近线段,这个过程一致迭代直到所有的线段拟合完毕。
MaxLineDist2 第二次逼近轮廓时的MaxLineDist,只有当MaxLineDist2
这种两步逼近算法效率较高,因为在第一次逼近过程中,递进逼近的直线段较少&#