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

2023-09-13 10:49:58

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

🌟🌟🌟 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校准对象校准光测量系统

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


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

更多推荐

数据分析三剑客之Numpy

数据分析三剑客:Numpy,Pandas,Matplotlib1.简介NumPy(NumericalPython)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。numpy是基于c语言开发,所以这使得numpy的运行速度很快,高效率运行就是numpy的一大优势。

认识数据分析

文章目录1.认识数据分析1.1数据自身的三大属性1.2建数仓数据分析的工程技术1.3数据分析解决问题的原理1.4数据分析的具体流程1.5数据的中心化和智能化1.6数据分析的四种类型和六个方向1.认识数据分析1.1数据自身的三大属性客观:用数字衡量和表现一件客观事物时,能最大程度统一大家的认知量化:量化的数据,可以利用数

SELinux

简介SELinux:SecurityEnhancedLinux,安全强化Linux自主访问控制DAC这是传统文件权限与账号关系,依据进程的拥有者与文件资源的rwx权限来决定有无存取的能力。缺点:root具有最高权限如果不小心某个进程被有心人取得,且该进程属于root权限,那么这支进程就可以在系统上进行任何资源的存取。使

基于Java酒店预约及管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌🍅文末获取源码联系🍅👇🏻精彩专栏推荐订阅👇🏻不然下次找不到哟2022-2024年最全的计算机软件毕业设计选题

Linux网络编程:使用UDP和TCP协议实现网络通信

目录一.端口号的概念二.对于UDP和TCP协议的认识三.网络字节序3.1字节序的概念3.2网络通信中的字节序3.3本地地址格式和网络地址格式四.socket编程的常用函数4.1sockaddr结构体4.2socket编程常见函数的功能和使用方法五.UDP协议实现网络通信5.1UDP协议服务端的封装5.2UDP协议客户端

Rust结构体和枚举

结构体struct,或者structure,是一个自定义数据类型,允许你包装和命名多个相关的值,从而形成一个有意义的组合。声明定义结构体,需要使用struct关键字并为整个结构体提供一个名字。结构体的名字需要描述它所组合的数据的意义。接着,在大括号中,定义每一部分数据的名字和类型,我们称为字段(field)。struc

网安之PHP基础作业(5)

目录目录前言系列文章列表IJ中PHP环境的搭建和使用教程思维导图1,简答题1.1.题目部分1.2,题目分析2,页面一实现2.1,题解2.2,页面效果展示3,页面二的实现3.1,题解3.2,题目结果展示3.2.1,结果13.2.2,结果23.2.3,结果34,总结前言本博文,主要是对自己在学校PHP基础第5节课后,对作业

[maven] maven 创建 web 项目并嵌套项目

[maven]maven创建web项目并嵌套项目这里主要就创建另外一个web项目,并且创建一个parent项目比较方便的管理一下两个子项目。mavenweb项目web创建和quickstart的过程是差不多的,只不过这里换乘webapp,配置方便的话可以搞的东西挺多的……这里就搞servlet,上古版本的东西了。cre

如何利用Requestly提升前端开发与测试的效率

【软件测试行业现状】2023年了你还敢学软件测试?未来已寄..测试人该何去何从?【自动化测试、测试开发、性能测试】前端测试在进行前端页面开发或者测试的时候,我们会遇到这一类场景:在开发阶段,前端想通过调用真实的接口返回响应在开发或者生产阶段需要验证前端页面的一些异常场景或者临界值时在测试阶段,想直接通过修改接口响应来验

14:00面试,14:06就出来了,问的问题有点变态。。。

从小厂出来,没想到在另一家公司又寄了。到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到5月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%,这下搞的饭都吃不起了。还在有个朋友内推我去了一家互联网公司,兴冲冲见面试官,没想到一道题把我给问死了:如果模块请求http改为了h

RabbitMQ

1.初识MQ1.1.同步和异步通讯微服务间通讯有同步和异步两种方式:同步通讯:就像打电话,需要实时响应。异步通讯:就像发邮件,不需要马上回复。两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。1.1.1.同步通讯我们之前学习的Feign调用就

热文推荐