测量--找线

read_image (Image, 'printer_chip/printer_chip_01')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)
dev_display (Image)
draw_line (WindowHandle, Row1, Column1, Row2, Column2)
LineParam:=[Row1, Column1, Row2, Column2]
** 创建测量句柄
create_metrology_model (MetrologyHandle)
* 设置句柄的大小
set_metrology_model_image_size (MetrologyHandle, Width, Height)
** 添加测试模型对象 此次是线对象
add_metrology_object_generic (MetrologyHandle, 'line', LineParam, 20, 5, 1, 30, [], [], Index)
** 2 设置参数
**设置找线的方式(positive,negative, all) 从黑到白,从白到黑
set_metrology_object_param (MetrologyHandle, 'all', 'measure_transition', 'all')
**预期测量的区域个数 数量
set_metrology_object_param (MetrologyHandle, 'all', 'num_measures', 12)
**区域,垂直与边界的测量区域的一-半长度 长度
set_metrology_object_param(MetrologyHandle, 'all', 'measure_length1', 80)
**区域,相切于边缘的测量区域的一半长度 宽度
set_metrology_object_param(MetrologyHandle, 'all', 'measure_length2', 10)
**拟合数
set_metrology_object_param (MetrologyHandle, 'all', 'num_instances', 6)
**高斯平滑系数,值越大,唯一的边缘约清晰
set_metrology_object_param (MetrologyHandle, 'all', 'measure_sigma', 5)
**最小边缘幅度越大,要求找到的边缘越锐利(灰度变换明显) ,反而与不容易找到边缘
set_metrology_object_param(MetrologyHandle, 'all', 'measure_threshold', 20)
**测量双立方插入值,区别与bilinear双线性
set_metrology_object_param(MetrologyHandle, 'all', 'measure_interpolation', 'bicubic')
**取值all,first, best, last
set_metrology_object_param(MetrologyHandle, 'all', 'measure_select', 'all')
**设置最小份上0.7
set_metrology_object_param (MetrologyHandle, 'all', 'min_score', 0.7)
**3
*开始找边缘
apply_metrology_model (Image, MetrologyHandle)
**边缘坐标集合
get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row, Column)
** 将点通过十字架连接起来
gen_cross_contour_xld (Cross, Row, Column, 6, 0.785398)
**得到线的起点坐标
get_metrology_object_result (MetrologyHandle, 0, 'all', 'result_type', 'all_param', Parameter)
**得到轮廓
get_metrology_object_result_contour (Contour, MetrologyHandle, 0, 'all', 1.5)
select_obj (Contour, ObjectSelected, 1)
select_obj (Contour, ObjectSelected1, 2)
*测量2个轮廓之间的距离
distance_cc (ObjectSelected, ObjectSelected1, 'point_to_point', DistanceMin, DistanceMax)
disp_message (WindowHandle, 'length='+DistanceMin, 'window', Row, Column, 'red', 'true')

浙公网安备 33010602011771号