halcon 2DMetrology

1. 2D测量基本步骤
在这里插入图片描述
2. 基本算子

  • 直线测量
read_image (Image, 'fuse')
get_image_size (Image, Width, Height)
*创建一个需要用来测量几何图形的数据结构
create_metrology_model (MetrologyHandle)
*设置被测量图像的尺寸大小
set_metrology_model_image_size (MetrologyHandle, Width, Height)
draw_line (3600, Row1, Column1, Row2, Column2)
gen_arrow_contour_xld (Arrow, Row1, Column1, Row2, Column2, 5, 5)
*创建测量模型ROI
************参数说明**************
*MetrologyHandle:指测量模型的句柄
*RowBegin:直线起点y坐标
*ColumnBegin:直线起点x坐标
*RowEnd:直线终点y坐标
*ColumnEnd:直线终点x坐标
*MeasureLength1: 垂直于边界的测量区域的半长
*MeasureLength2:切线于边界的测量区域的半长
*MeasureSigma:高斯平滑标准差
*MeasureThreshold:最小边界的振幅
*GenParamName:指定通用参数的名称
*GenParamValue:指定通用参数的值
*Index:指定创建测量对象的索引
add_metrology_object_line_measure (MetrologyHandle, Row1, Column1, Row2, Column2, 10, 5, 1, 30, [], [], Index)
*修改参数
set_metrology_object_param (MetrologyHandle, Index, 'measure_transition', 'negative')
set_metrology_object_param (MetrologyHandle, Index, 'measure_select', 'last')
set_metrology_object_param (MetrologyHandle, Index, 'measure_threshold', 30)
set_metrology_object_param (MetrologyHandle, Index, 'measure_length1', 20)
set_metrology_object_param (MetrologyHandle, Index, 'measure_sigma', 1)
*图像应用测量
apply_metrology_model (Image, MetrologyHandle)
*获得结果
*参数说明
*MetrologyHandle:测量模型的句柄
*Index :指定测量对象的下标
*Instance:指定返回的测量结果实例的类型
*GenParamName:指定通用参数的名称
*GenParamValue:指定通用参数的值
*Parameter :返回的结果
get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'all_param', Parameter)
*获得结果XLD轮廓
get_metrology_object_result_contour (Contour, MetrologyHandle, 'all', 'all', 1.5)
*获得测量范围
get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row, Column)
*销毁测量对象
clear_metrology_model (MetrologyHandle)

图像测量结果
在这里插入图片描述
控制变量结果
在这里插入图片描述

  • 矩形测量
read_image (Image, 'pads')
get_image_size (Image, Width, Height)
*创建测量句柄
create_metrology_model (MetrologyHandle)
*设置被测量图像尺寸大小
set_metrology_model_image_size (MetrologyHandle, Width, Height)
draw_rectangle2 (3600, Row, Column, Phi, Length1, Length2)
dev_set_draw ('margin')
gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
*设置测量模型ROI
add_metrology_object_rectangle2_measure (MetrologyHandle, Row, Column, Phi, Length1, Length2, 20, 5, 1, 30, [], [], Index)
*修改参数
set_metrology_object_param (MetrologyHandle, Index, 'measure_length1', 20)
set_metrology_object_param (MetrologyHandle, Index, 'measure_threshold', 3)
set_metrology_object_param (MetrologyHandle, Index, 'measure_transition', 'all')
set_metrology_object_param (MetrologyHandle, Index, 'measure_select', 'all')
set_metrology_object_param (MetrologyHandle, Index, 'measure_sigma', 1)
*图像应用于测量
apply_metrology_model (Image, MetrologyHandle)
*获取测量区域范围
get_metrology_object_measures (Contours, MetrologyHandle, Index, 'all', Row1, Column1)
*获取测量结果
dev_set_line_width (3)
get_metrology_object_result (MetrologyHandle, Index, 'all', 'result_type', 'all_param', Parameter)
*gen_rectangle2 (Rectangle1, Parameter[0],  Parameter[1], Parameter[2], Parameter[3],  Parameter[4])
*获取测量结果轮廓
get_metrology_object_result_contour (Contour, MetrologyHandle, Index, 'all', 1.5)
*销毁测量对象
clear_metrology_model (MetrologyHandle)

图像测量结果(粗线为测量结果轮廓)
在这里插入图片描述

  • 测量圆
read_image (Image, 'pads')
get_image_size (Image, Width, Height)
dev_set_line_width (1)
*创建测量句柄
create_metrology_model (MetrologyHandle)
*设置被测量图像尺寸大小
set_metrology_model_image_size (MetrologyHandle, Width, Height)
draw_circle (3600, Row, Column, Radius)
dev_set_draw ('margin')
gen_circle (Circle, Row, Column, Radius)
*设置测量模型ROI
add_metrology_object_circle_measure (MetrologyHandle, Row, Column, Radius, 20, 2, 1, 30, [], [], Index)
set_metrology_object_param (MetrologyHandle, Index, 'measure_length1', 10)
set_metrology_object_param (MetrologyHandle, Index, 'measure_threshold', 3)
set_metrology_object_param (MetrologyHandle, Index, 'measure_transition', 'all')
set_metrology_object_param (MetrologyHandle, Index, 'measure_select', 'all')
set_metrology_object_param (MetrologyHandle, Index, 'measure_sigma', 1)
*图像应用于测量
apply_metrology_model (Image, MetrologyHandle)
*获取测量区域范围
get_metrology_object_measures (Contours, MetrologyHandle, Index, 'all', Row1, Column1)
*获取测量结果
dev_set_line_width (3)
get_metrology_object_result (MetrologyHandle, Index, Index, 'result_type', 'all_param', Parameter)
*gen_rectangle2 (Rectangle1, Parameter[0],  Parameter[1], Parameter[2], Parameter[3],  Parameter[4])
*获取测量结果轮廓
get_metrology_object_result_contour (Contour, MetrologyHandle, Index, 'all', 1.5)
*销毁测量对象
clear_metrology_model (MetrologyHandle)

图像测量结果(粗线为测量结果轮廓)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_29187197/article/details/82847877
今日推荐