Halcon视觉轮廓线拟合测量-@龙熙视觉培训

Halcon基础视频教程
——带你进入图像处理的世界

在这里插入图片描述

1.方法1 轮廓线拟合测量

1.1.测量1–Measure pump
* step: create and select relevant contours
*
threshold_sub_pix (ImageReduced, Border, 80)
select_shape_xld (Border, SelectedXLD, [‘contlength’,‘outer_radius’], ‘and’, [70,15], [99999,99999])
segment_contours_xld (SelectedXLD, ContoursSplit, ‘lines_circles’, 4, 2, 2)
select_shape_xld (ContoursSplit, SelectedXLD3, [‘outer_radius’,‘contlength’], ‘and’, [15,30], [45,99999])
union_cocircular_contours_xld (SelectedXLD3, UnionContours2, 0.5, 0.1, 0.2, 2, 10, 10, ‘true’, 1)
sort_contours_xld (UnionContours2, SortedContours, ‘upper_left’, ‘true’, ‘column’)

在这里插入图片描述

1.2 钻石角度测量 -XLD

2.2D测量–卡尺测量工具
序号 名称 案例
1 add_metrology_object_rectangle2_measure Apply_metrology_model.hdev案例
2 add_metrology_object_circle_measure Apply_metrology_model.hdev案例
3 add_metrology_object_ellipse_measure
4 add_metrology_object_line_measure Apply_model_diamond.hdev钻石角度测量案例(形态学找到位置,然后应用2维线测量)
5 add_metrology_object_generic Measure_stamping_part匹配+2维测量案例(应用匹配找到位置)
6 add_metrology_object_line_measure Point_line_to_hom_mat2d(对halcon图像进行点线变换)

apply_metrology_model.hdev案例

2.1二维计量 create_metrology_model
Metrology: 测量
MetrologyHandle 手柄
create_metrology_model(算子)
create_metrology_model - 创建测量几何形状所需的数据结构。
create_metrology_model(::: MetrologyHandle)

描述
create_metrology_model创建计量模型,即通过2D计量测量具有特定几何形状(计量对象)的对象所需的数据结构,并将其返回到手柄MetrologyHandle中。

二维计量的基本原理
通常,对于2D度量,必须提供要测量的对象的位置,方向和几何形状的近似值。在显示对象的图像内,这些近似对象的边界用于定位对象的真实边缘以适应几何形状的参数,使得它们最佳地适合图像数据。测量结果是优化的参数。计量模型用于存储所有必要的信息,例如计量对象的位置和几何形状的初始参数,控制测量的参数以及测量结果。可以通过2D计量测量的几何形状包括圆形,椭圆形,矩形和线条。

图像中对象的边缘位于所谓的测量区域内。这些是矩形区域,其垂直于近似物体的边界布置,使得它们的中心位于边界上。调整测量区域的尺寸和分布的参数与每个测量对象的近似形状参数一起指定。

当应用测量时,使用RANSAC算法确定所有测量区域内的边缘位置并使其适合几何形状。

2.2 set_metrology_model_image_size
设置被测量图像的尺寸大小

2.3增加一个形状(矩形,圆形)到测量模型

共有5种类型
1 add_metrology_object_rectangle2_measure
2 add_metrology_object_circle_measure
3 add_metrology_object_ellipse_measure
4 add_metrology_object_line_measure
5 add_metrology_object_generic

//2.3.1增加一个矩形到测量模型 矩形2
//参数说明: MetrologyHandle指测量模型的句柄, Row为矩形中心的y坐标值, Column为矩形中心的x坐标值, Phi为矩形的长半轴的方向,
//Length1为矩形长半轴的长度, Length2为矩形短半轴的长度,
MeasureLength1相对于长半轴垂直边界的检测区域一半长度, RectangleTolerance 10
//MeasureLength2相对于短半轴垂直边界的检测区域一半长度, 5
MeasureSigma高斯平滑用到的参数, .5
MeasureThreshold最小边界的阈值, 1
// GenParamName指定通用参数的名称, []
GenParamValue指定通用参数的值, []
Index指定创建测量对象的索引 -MetrologyRectangleIndice
add_metrology_object_rectangle2_measure (MetrologyHandle, RectangleInitRow, RectangleInitColumn, RectangleInitPhi, RectangleInitLength1, RectangleInitLength2, RectangleTolerance, 5, .5, 1, [], [], MetrologyRectangleIndices)

// 增加一个圆形到测量模型 圆形2

矩形

//measure_stamping part
测量冲压件

2.3.2 add_metrology_object_generic(:: MetrologyHandle,Shape,ShapeParam,MeasureLength1,MeasureLength2,MeasureSigma,MeasureThreshold,Gen​​ParamName,GenParamValue:Index)

  • Add several full circles
    CircleParam := [354,274,53]
    CircleParam := [CircleParam,350,519,53]
    CircleParam := [CircleParam,345,764,52]
    CircleParam := [CircleParam,596,523,53]
    add_metrology_object_generic (MetrologyHandle, ‘circle’, CircleParam, 20, 5, 1, 30, [], [], CircleIndices1)
  • Add two partial circles
    CircleParam1 := [583,1010,79]
    CircleParam2 := [336,1005,77]
    add_metrology_object_generic (MetrologyH
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值