Halcon拟合系列(2)直线/圆/椭圆/矩形拟合算子fit_line_contour_xld/fit_circle_contour_xld/...

简介: Halcon拟合系列(2)直线/圆/椭圆/矩形拟合算子fit_line_contour_xld/fit_circle_contour_xld/...

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


提示信息 - Halcon视觉之家 - 51Halcon专注于机器视觉技术

相关文章
Halcon找圆系列(1)如何检测圆形
Halcon找圆系列(1)如何检测圆形
2619 0
Halcon找圆系列(1)如何检测圆形
halcon的灰度变换(图像增强)
halcon的灰度变换(图像增强)
1096 1
Halcon中关于角度计算和测量拟合的算子详解
Halcon中关于角度计算和测量拟合的算子详解
2242 0
|
算法 数据可视化
Halcon边缘检测和线条检测(3),文章含BLOB检测常用方法和shape_trans内接和外接算子的说明
Halcon边缘检测和线条检测(3),文章含BLOB检测常用方法和shape_trans内接和外接算子的说明
2823 0
Halcon边缘检测和线条检测(3),文章含BLOB检测常用方法和shape_trans内接和外接算子的说明
|
机器学习/深度学习 存储 文字识别
Halcon解决方案指南(18)OCR--字符识别
第18章 光学字符识别_OCR OCR(Optical Character Recongnition)即我们通常意义上讲的光学字符识别。在HALCON中,OCR常被用来分割区域及读取识别图像中的字符含义。
9159 57
halcon算子模板匹配(一)基于形状的模板匹配
halcon算子模板匹配(一)基于形状的模板匹配
4042 0
|
算法
halcon系列之直线拟合和圆形拟合算子
halcon系列之直线拟合和圆形拟合算子
1694 0
|
计算机视觉
【图像处理】 Halcon 实现图像亚像素边缘检测
如何在Halcon软件中实现图像亚像素边缘检测,包括读取图片、图像阈值化、边界提取、区域扩张、亚像素边缘提取、轮廓拟合和彩色绘图等步骤,并提供了相应的Halcon代码实现和检测效果展示。
636 2
halcon基础系列之几何工具相关算子
halcon基础系列之几何工具相关算子
566 0
|
计算机视觉
[Halcon&图像] 形态学处理(腐蚀、膨胀、开运算、闭运算)
[Halcon&图像] 形态学处理(腐蚀、膨胀、开运算、闭运算)
1218 1

热门文章

最新文章