• 【二】2D测量 Metrology——add_metrology_object_generic()算子



    😊😊😊欢迎来到本博客😊😊😊

    🌟🌟🌟 Halcon算子太多,学习查找都没有系统的学习查找路径,本专栏主要分享Halcon各类算子含义及用法,有时间会更新具体案例。

    😊😊😊 具体食用方式:可以点击本专栏【Halcon算子快速查找】–>搜索你要查询的算子名称;或者点击Halcon算子汇总博客,即可食用。

    🎁🎁🎁支持:如果觉得博主的文章还不错或者您用得到的话,可以悄悄关注一下博主哈,如果三连收藏支持就更好啦!这就是给予我最大的支持!😙😙😙


    学习目标

    • add_metrology_object_generic()

    学习内容

    算子简介

    函数名解释
    add_metrology_object_generic()将测量对象添加到测量模型中

    1、add_metrology_object_generic()

      add_metrology_object_generic( : : MetrologyHandle, Shape, ShapeParam, MeasureLength1, MeasureLength2, MeasureSigma, MeasureThreshold, GenParamName, GenParamValue : Index)

      函数说明: 将类型为Shape的计量对象添加到计量模型中并准备矩形度量区域,模型的句柄在MetrologyHandle中传递。 Shape指定将哪种类型的对象添加到计量模型中。运算符add_metrology_object_generic在参数Index中返回添加的度量对象的索引。请注意,add_metrology_object_generic在一个运算符中提供运算符add_metrology_object_circle_measure,add_metrology_object_ellipse_measure,add_metrology_object_rectangle2_measure和add_metrology_object_line_measure的功能。
      其中:Shape参数中指定对象,ShapeParam参数值有所区别。
        圆形: 类型圆的计量对象的几何形状由其中心(行,列)和半径指定。ShapeParam = [行,列,半径]
        旋转矩形: 矩形类型的计量对象的几何形状由其中心(行,列),主轴Phi的方向以及半边长度Length1和Length2指定。 Phi的输入值自动映射到间隔。 ShapeParam = [行,列,Phi,长度1,长度2]
        椭圆: 椭圆类型的计量对象的几何形状由其中心(行,列),主轴Phi的方向,较大的半轴Radius1的长度以及较小的半轴Radius2的长度来指定。 Phi的输入值自动映射到间隔。ShapeParam = [行,列,Phi,Radius1,Radius2]
        线: 类型线的度量对象的几何形状由其起点(RowBegin,ColumnBegin)的坐标和其终点的坐标(RowEnd,ColumnEnd)描述。ShapeParam = [RowBegin,ColumnBegin,RowEnd,ColumnEnd]

      函数参数:
        MeasureHandle:输入测量模型的句柄;
        Shape:输入要测量对象的类型;默认值:‘circle’,参考值:‘circle’,‘ellipse’,‘line’,‘rectangle2’;
        ShapeParam:要添加的测量对象的参数。
        MeasureLength1:输入垂直于边界的测量区域的一半长度;默认值:20,参考值:10,20,30;最小增量:1.0;建议增量:10.0
        MeasureLength2:输入与边界相切的测量区域的一半长度;默认值:5,参考值:3,5,10;最小增量:1.0;建议增量:10.0
        MeasureSigma:输入用于平滑的高斯函数的sigma;默认值:1,参考值:0.4,0.6,0.8,1.0,1.5,2.0,3.0,4.0,5.0,7.0,10.0;最小增量:0.01;建议增量:0.1;限制:(0.4 <= MeasureSigma)&&(MeasureSigma <= 100)
        MeasureThreshold:输入测量阈值/最小边缘幅度;默认值:30,参考值:5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 90.0, 110.0;最小增量:0.5;建议增量:2;
        GenParamName:输入参数名称;参考: ‘distance_threshold’, ‘end_phi’, ‘instances_outside_measure_regions’, ‘max_num_iterations’, ‘measure_distance’, ‘measure_interpolation’, ‘measure_select’, ‘measure_transition’, ‘min_score’, ‘num_instances’, ‘num_measures’, ‘point_order’, ‘rand_seed’, ‘start_phi’;
        GenParamValue:输入参数值;参考:1, 2, 3, 4, 5, 10, 20, ‘all’, ‘true’, ‘false’, ‘first’, ‘last’, ‘positive’, ‘negative’, ‘uniform’, ‘nearest_neighbor’, ‘bilinear’, ‘bicubic’;
        Index:输出创建测量对象的索引值;

    案例

    create_metrology_model (MetrologyHandle)
    read_image (Image, 'fabrik')
    get_image_size (Image, Width, Height)
    set_metrology_model_image_size (MetrologyHandle, Width, Height)
    LinePar := [45,360,415,360]
    RectPar1 := [270,232,rad(0),30,25]
    RectPar2 := [360,230,rad(0),30,25]
    LinePar := [45,360,415,360]
    RectPar3 := [245,320,rad(-90),70,35]
    * Add two rectangles
    add_metrology_object_generic (MetrologyHandle, 'rectangle2', [RectPar1,RectPar2], 20, 5, 1, 30, [], [], Indices)
    * Add a rectangle and a line
    add_metrology_object_generic (MetrologyHandle, ['rectangle2','line'], [RectPar3,LinePar], 20, 5, 1, 30, [], [], Index)
    get_metrology_object_model_contour (Contour, MetrologyHandle, 'all', 1.5)
    apply_metrology_model (Image, MetrologyHandle)
    get_metrology_object_result_contour (Contour1, MetrologyHandle, 'all',  'all', 1.5)
    clear_metrology_model (MetrologyHandle)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    Halcon例程

    measure_stamping_part.hdev		使用对齐的metroloy模型(校准)测量冲压零件的圆、矩形和直线
    
    • 1

    【2D测量 Metrology部分】 待更新算子

    • create_metrology_model()
    • set_metrology_model_image_size()
    • add_metrology_object_circle_measure()
    • add_metrology_object_ellipse_measure()
    • add_metrology_object_generic()
    • add_metrology_object_line_measure()
    • add_metrology_object_rectangle2_measure()
    • set_metrology_model_param()
    • set_metrology_object_fuzzy_param()
    • set_metrology_object_param()
    • align_metrology_model()
    • apply_metrology_model()
    • get_metrology_model_param()
    • get_metrology_object_fuzzy_param()
    • get_metrology_object_indices()
    • get_metrology_object_measures()
    • get_metrology_object_model_contour()
    • get_metrology_object_num_instances()
    • get_metrology_object_param()
    • get_metrology_object_result()
    • get_metrology_object_result_contour()
    • clear_metrology_model()
    • clear_metrology_object()
    • copy_metrology_model()
    • deserialize_metrology_model()
    • read_metrology_model()
    • reset_metrology_object_fuzzy_param()
    • reset_metrology_object_param()
    • serialize_metrology_model()
    • write_metrology_model()

    汇总

      本专栏博客汇总:Halcon算子汇总


    🚶🚶🚶今天的文章就到这里啦~
    喜欢的话,点赞👍、收藏⭐️、关注💟哦 ~

  • 相关阅读:
    [附源码]Python计算机毕业设计电影院订票系统
    LeetCode 112:路径总和
    非零基础自学Java (老师:韩顺平) 第13章 常用类 13.11 日期类
    javaScript学习———变量概述 变量的使用 变量语法扩展 变量命名规范交换 变量案例
    代码随想录算法训练营day41
    Web Vitals:提升用户体验的关键指标
    使用Python进行云计算:AWS、Azure、和Google Cloud的比较
    一键搞定发布自己Jar到Maven中央仓库
    一文1800字解读性能指标与性能分析
    54.【system系统互动函数大总结】
  • 原文地址:https://blog.csdn.net/qq_41225961/article/details/127645603