fit_line_contour_xld.hdev
fit_line_contour_xld(Contours : : Algorithm, MaxNumPoints, ClippingEndPoints, Iterations, ClippingFactor : RowBegin, ColBegin, RowEnd, ColEnd, Nr, Nc, Dist)
参数说明:
1 Contours 输入的轮廓
2 Algorithm 拟合直线算法
'regression' 标准的最小二乘拟合; 最简单,但是受离群点的影响比较大,鲁棒性不强。
'huber' 加权最小二乘拟合,通过Huber方法减小离群点的影响
'tukey' 加权最小二乘拟合,通过Tukey方法减小离群点的影响【默认】
'drop':加权的最小二乘法拟合,异常值的影响被消除【平顶】
'gauss':加权的最小二乘法拟合,异常值的影响被减小基于最逼近线上的所有其轮廓点的平均值和距离标准方差【高斯】
参数列表:
MaxNumPoints(in):用于计算的最大轮廓点个数
ClippingEndPoints(in):在逼近过程中被忽略的开始及末尾点个数
Iterations(in):迭代的最大次数
ClippingFactor(in):消除异常值的裁剪因子,即削波系数,用于消除异常值,默认2.0
RowBegin(out):线段开始点的行坐标
ColBegin(out):线段开始的列坐标
RowEnd(out):线段结尾的行坐标
ColEnd(out):线段结尾的列坐标
Nr(out):线参数:法向量的行坐标
Nc(out):法向量的列坐标
Dist(out):原点到该线的距离
ClippingFactor控制被弱化的异常值个数,值越小,越多异常值被检测到。
最小拟合一条线的必要轮廓点个数是2,因此,一条轮廓线点个数至少是2+2*ClippingEndPoints
可能前置项:
gen_contours_skeleton_xld, lines_gauss, lines_facet, edges_sub_pix, smooth_contours_xld
可能后置项:
disp_line, select_lines, line_orientation
可替代项:
regress_contours_xld, get_regress_params_xld
read_image (Image, 'mreut') edges_sub_pix (Image, Edges, 'lanser2', 0.5, 20, 40) gen_polygons_xld (Edges, Polygons, 'ramer', 2) split_contours_xld (Polygons, Contours, 'polygon', 1, 5) fit_line_contour_xld (Contours, 'regression', -1, 0, 5, 2, RowBegin, \ ColBegin, RowEnd, ColEnd, Nr, Nc, Dist) read_image (Image, 'C:/Users/Administrator/Desktop/1.png') threshold (Image, Regions, 0, 112) skeleton(Regions,TriangleSkeleton) gen_contours_skeleton_xld(TriangleSkeleton,TriangleContours,1,'filter') segment_contours_xld(TriangleContours,ContoursSplit,'lines_circles', 5, 4, 2) select_contours_xld(ContoursSplit,SelectedContours, 'contour_length',100, 999, -0.5, 0.5) fit_line_contour_xld (SelectedContours, 'tukey', -1, 10, 5, 2, RowBegin, ColBegin, RowEnd, ColEnd, Nr, Nc, Dist) *计算三个夹角 angle_ll (RowBegin[0], ColBegin[0], RowEnd[0], ColEnd[0], RowBegin[1], ColBegin[1], RowEnd[1], ColEnd[1], Angle1) angle_ll (RowBegin[0], ColBegin[0], RowEnd[0], ColEnd[0], RowBegin[2], ColBegin[2], RowEnd[2], ColEnd[2], Angle2) angle_ll (RowBegin[1], ColBegin[1], RowEnd[1], ColEnd[1], RowBegin[2], ColBegin[2], RowEnd[2], ColEnd[2], Angle3) Angle1:=abs(deg(Angle1)) Angle2:=abs(deg(Angle2)) Angle3:=abs(deg(Angle3)) dev_display (Image) dev_display (SelectedContours) disp_message (3600, '角度:' + Angle1 + '°、 ' + Angle2 + '°、 ' + Angle3 + '°', 'image', 20, 20, 'red', 'true') fit_circle_contour_xld.hdev
fit_circle_contour_xld
参数Algorithm的可选项解释如下:
algebraic:这种方法减少了轮廓点与结果圆之间的代数距离
ahuber:类似于algebraic,轮廓点被加权以减小异常值的影响基于方法Huber
atukey:类似于algebraic,轮廓点被加权以减小异常值的影响基于方法Tukey
geometric:该法减少了轮廓点与结果圆之间的几何距离,该法被统计是最优的,但占用很多计算时间。如果轮廓点被噪声干扰严重,可以考虑使用该方法。
geohuber:类似于geometric,轮廓点被加权以减小异常值的影响基于方法Huber
geotukey:类似于geometric,轮廓点被加权以减小异常值的影响基于方法Tukey
fit_ellipse_contour_xld.hdev
fit_ellipse_tooth_rim_xld.hdev
fit_rectangle2_contour_xld.hdev
---
鸟叔封装的halcon rake卡直线 spoke卡圆工具(开源版) v1.3 20190527