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



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

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

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

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


    学习目标

    • read_object_model_3d()

    学习内容

    算子简介

    函数名解释
    read_object_model_3d()从文件中读取三维对象模型。

    1、read_object_model_3d()

      read_object_model_3d( : : FileName, Scale, GenParamName, GenParamValue : ObjectModel3D, Status)

      函数说明: read_object_model_3d从文件FileName读取一个3D对象模型,并将一个3D对象模型句柄返回给ObjectModel3D。

      函数参数:
        FileName输入要读取的文件的文件名,具体如下:

    参数名解释
    'om3'使用此格式可以通过write_object_model_3d函数将文件写入。此格式的默认文件扩展名为'om3'
    'dxf'AUTOCAD格式。此格式的默认文件扩展名为'dxf'
    'off'Object File Format(.off)。这是一种基于ASCII的简单格式,可以存储3D点和多边形。不支持二进制OFF格式。此格式的默认文件扩展名为'off'
    'ply'多边形文件格式(也称为斯坦福三角形格式)。这是一种简单的格式,可以存储3D点、点法线和多边形。HALCON支持该格式的ASCII和二进制版本。此格式的默认文件扩展名为'ply'
    'obj'OBJ文件格式,也称为’Wavefront OBJ格式’。这是一种基于ASCII的格式,可以存储3D点、多边形、法线、纹理坐标、材质和其他信息。HALCON支持点('v’行)和多边形面(‘f’行)。其他实体将被忽略。此格式的默认文件扩展名为'obj'
    'stl''stl_binary''stl_ascii'STL文件格式,也称为’立体光刻格式’、‘表面三角化语言’、‘标准三角化语言’和’标准三角剖分语言’。该格式存储三角形和三角形法线。然而,由于HALCON 3D对象模型不支持三角形法线,只读取三角形,而忽略三角形法线。如果需要,法线会从三角形重新计算。HALCON同时支持该格式的ASCII和二进制版本。如果设置为’stl’,HALCON将自动检测格式类型。将类型设置为’stl_binary’或’stl_ascii’将强制使用相应的格式。此格式的默认文件扩展名为'stl'

        Scale输入 文件中数据的比例,单位与缩放因子的关系如下表所示:

        GenParamName输入 参数名,可以设置一组额外的可选参数。参数的名称和值分别通过GenParamNameGenParamValue传递,参数名如下表

    参数名解释
    'file_type'设置文件类型,如: 'om3', 'dxf', 'off', 'ply', 'obj', 'stl'
    'convert_to_triangles'将所有面转换为三角形。如果将此参数设置为“true”,则从文件中读取的所有面都会被转换为三角形。默认值'false'适用格式: 'dxf', 'ply', 'off', 'obj', 'stl'
    'invert_normals'反转法线和面的方向。如果将此参数设置为“true”,则所有法线和面的方向将被反转。默认值'false'适用格式: 'dxf', 'ply', 'off', 'obj'
    'max_approx_error','min_num_pointsDXF特定参数,适用格式: 'dxf
    'xyz_map_width'为读取的3D物体模型创建一个映射,将每个读取的3D点分配给一个图像坐标,类似于xyz_to_object_model_3d。假设读取的文件按行包含了3D点。传入的值将用作图像的宽度,图像的高度会自动计算。如果设置了该参数,可以使用object_model_3d_to_xyz方法中的’from_xyz_map’选项对读取的3D物体模型进行投影。只能设置两个参数中的一个:‘xyz_map_width’和’xyz_map_height’。范围: ‘xyz_map_width’ > 0;默认值'-1适用格式: 'ply', 'off', 'obj'
    'xyz_map_height'与’xyz_map_width’类似,但假设3D点是按列对齐的。图像的宽度将自动计算。只能设置’xyz_map_width’和’xyz_map_height’中的一个参数。范围: ‘xyz_map_height’ > 0; 默认值'-1适用格式: 'ply', 'off', 'obj'

        GenParamValue输入 对应参数名的参数值,详见上表;
        ObjectModel3D输出 3D对象模型句柄;
        Status输出状态信息;

    Halcon例程

    vector_to_hom_mat3d.hdev						从点对应关系近似不同类型的仿射三维变换
    triangulate_object_model_3d_implicit.hdev		对三维对象模型进行三角化(隐式)
    triangulate_object_model_3d_greedy.hdev			对三维对象模型进行三角化(显式)
    select_points_object_model_3d.hdev				使用阈值删除三维对象模型的部分
    reduce_object_model_3d_by_view.hdev				按视图删除三维对象模型的部分
    locate_pipe_joints_stereo.hdev					使用多视图立体和基于曲面的三维匹配定位管道接头
    locate_cylinder_3d.hdev							通过结合立体和3D匹配找到堆中最高的圆柱体
    intersect_plane_object_model_3d.hdev			计算三维对象模型和平面之间的交点
    interactive_intersection.hdev					交互式计算三维对象模型和平面之间的交点
    find_deformable_surface_model.hdev				使用基于可变形曲面的匹配在三维场景中查找对象
    create_shape_model_3d_lowest_model_level.hdev	减少3D形状模型所需的内存
    create_shape_model_3d_ignore_part_polarity.hdev	加快纹理背景上基于形状的3D匹配
    connection_object_model_3d.hdev					计算三维对象模型的连接组件
    calibrate_sheet_of_light_3d_calib_object.hdev	使用3D校准对象校准光测量系统
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    【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算子汇总


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

  • 相关阅读:
    如何理解PoW工作量证明?
    Flutter中GetX系列七--依赖注入(put,lazyPut,putAsync)、Binding(统一初始化)
    NLP(文本处理技术)在数据分析中的应用实例
    猿创征文|深入剖析多态的实现原理与虚函数指针
    谷粒学苑_第十一天
    vue中el-table的行拖拽和el-dialog中表格的行拖拽
    【MindSpore】用coco2017训练Model_zoo上的 yolov4,迭代了两千多batch_size之后报错,大佬们帮忙看看。
    PS通过GTX实现SFP网络通信2
    【c++刷题Day2】专题3栈与队列&单调栈与单调队列T1
    JAVA技术设计模式
  • 原文地址:https://blog.csdn.net/qq_41225961/article/details/132845050