add_metrology_object_line_measure 抓线(无对齐测量模型)

read_image (Image, ‘C:/Users/Public/Documents/MVTec/HALCON-18.11-Progress/examples/images/printer_chip/printer_chip_01.png’)
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
get_image_size (Image, Width, Height)
dev_display (Image)
*画一条线
draw_line (WindowHandle, Row1, Column1, Row2, Column2)
*创建测量模型句柄
create_metrology_model (MetrologyHandle)
        *   添加直线测量对象到模型
        *   add_metrology_object_line_measure()
        *   MetrologyHandle:测量模型句柄
        *   RowBegin:测量区域行坐标起点
        *   ColumnBegin:测量区域列坐标起点
        *   RowEnd:测量区域行坐标终点
        *   ColumnEnd:测量区域列坐标终点
        *   MeasureLength1:垂直于边界的测量区域的一半长度
        *   MeasureLength2:相切于边界的测量区域的一半长度
        *   MeasureSigma:用于平滑的高斯函数的 Sigma
        *   MeasureThreshold:最小边缘幅度阈值
        *   GenParamName:通用参数的名称
        *   GenParamValue:通用参数值
        *   Index:所创建的计量对象的索引    
  
add_metrology_object_line_measure (MetrologyHandle, Row1, Column1, Row2, Column2, 20, 5, 1, 30, [], [], Index)
*’num_instances’:拟合,成功拟合实例的最大数量
set_metrology_object_param (MetrologyHandle, ‘all’, ‘num_instances’, 1)
*’measure_select’:测量,边缘端点的选择(‘last’、’first’)
set_metrology_object_param (MetrologyHandle, ‘all’, ‘measure_select’, ‘all’)
*’measure_threshold’:测量,最小边缘幅度阈值
set_metrology_object_param (MetrologyHandle, ‘all’, ‘measure_threshold’, 30)
*’measure_sigma’:测量,用于平滑的高斯函数的 Sigma
set_metrology_object_param (MetrologyHandle, ‘all’, ‘measure_sigma’, 1)
*’measure_length1’:区域,垂直于边界的测量区域的一半长度
set_metrology_object_param (MetrologyHandle, ‘all’, ‘measure_length1’, 30)
*’measure_length2’:区域,相切于边界的测量区域的一半长度
set_metrology_object_param (MetrologyHandle, ‘all’, ‘measure_length2’, 1)
*’num_measures’:区域,测量区域数(小卡尺个数)
set_metrology_object_param (MetrologyHandle, ‘all’, ‘num_measures’, 10)
*’min_score’:拟合,最小分数
set_metrology_object_param (MetrologyHandle, ‘all’, ‘min_score’, 0.4)
        * 执行
        *apply_metrology_model()
        *Image:输入的测量图像
        *MetrologyHandle:测量模型句柄 

apply_metrology_model (Image, MetrologyHandle)
        *获取计量模型的计量对象的测量区域和边缘位置结果  
        *get_metrology_object_measures()
        *Contours:测量区域的矩形 XLD 轮廓
        *MetrologyHandle:测量模型句柄
        *Index:指定计量对象,为all时所有计量对象的参数都被设置(’all’)
        *Transition:选择亮/暗或暗/亮边缘(‘all’、’negative’、 ‘positive’)
        *Row:测量边缘的行坐标集
        *Column:测量边缘的列坐标集

get_metrology_object_measures (Contours, MetrologyHandle, ‘all’, ‘all’, Row, Column)
* 获取计量模型的计量对象的结果
        *get_metrology_object_result()
        *Contour:给定计量对象的结果轮廓
        *MetrologyHandle:测量模型句柄
        *Index:指定计量对象,为all时所有计量对象的参数都被设置(’all’)
        *GenParamName:通常设置为’result_type’,表示用GenParamValue返回方式和结果
        *GenParamValue:通常设置为’all_param’,表示将所有测量参数到Parameter
        *Parameter:返回的参数值
        *对于直线:返回 [‘row_begin’,‘column_begin’,‘row_end’,‘column_end’]
        *对于圆型:返回[‘row’,‘column’,‘radius’]或 [‘x’,‘y’,‘radius’]
        *对于椭圆:返回[‘row’,‘column’,‘phi’,‘radius1’,‘radius2’]
        *对于矩形:返回[‘row’,‘column’,‘phi’,‘length1’,‘length2’] 

get_metrology_object_result (MetrologyHandle, 0, ‘all’, ‘result_type’, ‘all_param’, Parameter)
        * 获取计量模型的计量对象的结果轮廓
        *get_metrology_object_result_contour()
        *Contour:给定计量对象的结果轮廓。
        *MetrologyHandle:测量模型句柄
        *Index:指定计量对象,为all时所有计量对象的参数都被设置(’all’)
        *Instance:计量对象的实例(’all’)
        *Resolution:相邻轮廓点之间的距离 

get_metrology_object_result_contour (Contour, MetrologyHandle, 0, ‘all’, 1.5)
*释放测量模型句柄
clear_metrology_model (MetrologyHandle)
clear_window (WindowHandle)
dev_display (Image)
dev_set_color (‘red’)
dev_display (Contour)
dev_set_color (‘green’)
gen_cross_contour_xld (Cross, Row, Column, 16, 0.785398)

          *参数设置列表(set_metrology_object_param )

           * ‘measure_length1’:区域,垂直于边界的测量区域的一半长度
           * ‘measure_length2’:区域,相切于边界的测量区域的一半长度
           * ‘measure_distance’:区域,两个测量区域中心之间的距离
           * ‘num_measures’:区域,测量区域数
           * ‘measure_sigma’:测量,用于平滑的高斯函数的 Sigma
           * ‘measure_threshold’:测量,最小边缘幅度阈值
           * ‘measure_select’:测量,边缘端点的选择(‘last’、’first’)
           * ‘measure_transition’:测量,方向(‘all’、’negative’、 ‘positive’)
           * ‘measure_interpolation’:测量,插值类型
           * ‘min_score’:拟合,最小分数
           * ‘num_instances’:拟合,成功拟合实例的最大数量
           * ‘distance_threshold’:拟合,距离阈值 

       结果:
        

 本帖 复制 可以直接运行,红色字体为注解。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年9月1日
下一篇 2023年9月1日

相关推荐