• 【四】3D Object Model之创建Creation——set_object_model_3d_attrib_mod()/union_object_model_3d()算子



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

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

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

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


    学习目标

    • set_object_model_3d_attrib_mod()
    • union_object_model_3d()

    学习内容

    算子简介

    函数名解释
    set_object_model_3d_attrib_mod()设置三维对象模型的属性。
    union_object_model_3d()将多个三维对象模型组合到新的三维对象模型中。

    1、set_object_model_3d_attrib_mod()

      set_object_model_3d_attrib_mod( : : ObjectModel3D, AttribName, AttachExtAttribTo, AttribValues : )

      函数说明:将三维对象模型ObjectModel3DAttribName中给定的标准属性或扩展属性设置为AttribValues中的值。
      set_object_model_3d_attrib_modset_object_model_3d_ttrib相同,不同之处在于它不创建新的3d对象模型,而是修改给定的对象模型。通过设置参数AttachExtAttribTo,可以将扩展属性的值附加到三维对象模型的现有标准属性。对于标准属性,将忽略AttachExtAttribTo
      如果AttribName中的属性不存在,则会在可能的情况下创建这些属性。如果已设置现有属性,则AttribValues的长度必须与现有属性值匹配。在这种情况下,将替换现有的属性值。如果使用AttachExtAttribTo将扩展属性附加到已存在的标准属性,则AttribValues的长度必须与现有属性值匹配。

      函数参数:
        ObjectModel3D输入 3D对象模型句柄;
        AttribName输入属性名称;例如: ‘lines’, ‘point_coord_x’, ‘point_coord_y’, ‘point_coord_z’, ‘point_normal_x’, ‘point_normal_y’, ‘point_normal_z’, ‘polygons’, ‘triangles’, ‘xyz_mapping’;
        AttachExtAttribTo输入定义扩展属性的附加位置。默认: [ ];参考: [ ], ‘lines’, ‘object’, ‘points’, ‘polygons’, ‘triangles’;
        AttribValues输入属性值;

      :如果在AttribName中给定了多个属性,则AttribValues被划分为长度相等的子元组。然后将每个子元组分配给一个属性:

    AttribName := ['&attrib1','&attrib2','&attrib3']
    AttribValues := [0.0,1.0,2.0,3.0,4.0,5.0]
    
    • 1
    • 2

    Halcon例程

    sick-scanningruler_objectmodel3d.hdev				使用SICK ScanningRuler界面从SICK Ranger传感器数据生成3D对象模型
    set_object_model_3d_attrib.hdev		        		设置三维对象模型的属性
    reconstruct_3d_object_model_for_matching.hdev		通过三维配准从多个视图重建用于匹配的三维对象模型
    find_shape_model_3d_recompute_score.hdev			在基于形状的3D匹配的姿势细化之后重新计算分数
    find_deformable_surface_model.hdev					使用基于可变形曲面的匹配在三维场景中查找对象
    disp_object_model_3d.hdev							显示三维对象模型
    argos3d-p1xx_objectmodel3d.hdev						使用Argos3D-P1xx接口从Argos3D-P1xx传感器数据生成3D对象模型
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2、union_object_model_3d()

      union_object_model_3d( : : ObjectModels3D, Method : UnionObjectModel3D)

      函数说明:union_object_model_3d将ObjectModels3D中所有输入模型的数据组合为新的3d对象模型,该模型在UnionObjectModel3D中返回。只有存在于所有输入对象中的属性才会在UnionObjectModel3D中组合并返回。
      三维对象模型中的重叠区域可能会导致输出中潜在的二维贴图、多边形或三角形用处不大,因为它们也可能重叠。
      到目前为止,唯一支持的方法是“points_surface”,它将所有点和曲面组合到输出UnionObjectModel3D中。

      函数参数:
        ObjectModel3D输入 3D对象模型句柄;
        Method输入用于并集的方法;默认: ‘points_surface’;
        UnionObjectModel3D输出生成的三维对象模型的控制柄;

      

    gen_object_model_3d_from_points ([0,0,0,0],[1,1,0,0], [0,1,1,0],ObjectModel3D1)
    gen_object_model_3d_from_points ([1,1,1,1],[1,1,0,0], [0,1,1,0], ObjectModel3D2)
    get_object_model_3d_params (ObjectModel3D1, 'diameter', DiameterOld)
    union_object_model_3d ([ObjectModel3D1,ObjectModel3D2], 'points_surface',UnionObjectModel3D)
    get_object_model_3d_params (UnionObjectModel3D, 'diameter', DiameterNew)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Halcon例程

    reconstruct_3d_object_model_for_matching.hdev		通过三维配准从多个视图重建用于匹配的三维对象模型
    find_deformable_surface_model.hdev					使用基于可变形曲面的匹配在三维场景中查找对象
    
    • 1
    • 2

    【3D Object Model之创建Creation】 待更新算子

    • clear_object_model_3d()
    • copy_object_model_3d()
    • deserialize_object_model_3d()
    • gen_box_object_model_3d()
    • gen_cylinder_object_model_3d()
    • gen_empty_object_model_3d()
    • gen_object_model_3d_from_points()
    • gen_plane_object_model_3d()
    • gen_sphere_object_model_3d()
    • gen_sphere_object_model_3d_center()
    • read_object_model_3d()
    • serialize_object_model_3d()
    • set_object_model_3d_attrib()
    • set_object_model_3d_attrib_mod()
    • union_object_model_3d()
    • write_object_model_3d()

    汇总

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


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

  • 相关阅读:
    云计算和大数据处理
    Centos7安装mysql8.0教程
    c++学习笔记3_函数模板的使用并实现自己定义的队列
    循环外声明变量和循环内声明变量的区别
    可移植的python环境
    8-图文打造LeeCode算法宝典-最小栈与LRU缓存机制算法题解
    靶机 DC-2
    机器学习模型——逻辑回归
    痞子衡嵌入式:瑞萨RA8系列高性能MCU开发初体验
    编程大杂烩(四)
  • 原文地址:https://blog.csdn.net/qq_41225961/article/details/134525667