Halcon算子学习:distance_object_model_3d

在这里插入图片描述

distance_object_model_3d

( : : ObjectModel3DFrom, ObjectModel3DTo, Pose, MaxDistance, GenParamName, GenParamValue : )
计算一个3D对象模型到另一个3D对象模型的点的距离。

输入:

  • object_model_3d→(整数)
    源3D对象模型的句柄。
  • ObjectModel3DTo
    目标3D对象模型的句柄。
  • Pose
    源3D对象模型在目标3D对象模型中的姿态。
    默认值:[]
  • MaxDistance
    最大兴趣距离。
    默认值:0
  • GenParamName
    通用输入参数的名称。
    默认值:[]
    值列表:‘distance_to’, ‘invert_pose’, ‘method’, ‘output_attribute’, ‘sampling_dist_abs’, ‘sampling_dist_rel’, 'signed_distance ', ‘store_closest_index’
  • GenParamValue
  • 通用输入参数的值。
    默认值:[]
    值列表:‘auto’, ‘false’, ‘kd-tree’, ‘linear’, ‘points’, ‘polygons’, ‘primitive’, 'triangle ', ‘true’, ‘voxel’

算子描述

操作符distance_object_model_3d计算三维对象模型ObjectModel3DFrom中的点到三维对象模型ObjectModel3DTo中的点、三角形、多边形或原语的距离。在3D对象模型ObjectModel3DFrom中,距离被存储为一个名为==“&distance”==的扩展属性。随后可以使用get_object_model_3d_params查询该属性,或者使用select_points_object_model_3d或其他使用扩展属性的操作符处理该属性。

目标数据(点、三角形、多边形或原语)是根据ObjectModel3DTo中包含的属性选择的。它是根据以下优先级中数据的存在而选择的:原语、三角形、多边形和点。作为这种自动目标数据选择的替代方法,还可以使用通用参数’distance_to’设置目标数据类型(参见下面)。在计算到最终三角形的距离之前,操作符在内部对一般的非三角形多边形进行三角化。因此,用三角形对象调用操作符比用具有不同多边形面的对象调用它要快。

可以选择使用参数MaxDistance设置阈值。超过此阈值的距离设置为MaxDistance的值,即,值被剪切。设置MaxDistance可以显著加快该操作符的执行速度。如果MaxDistance设置为0,则不使用阈值。

如果Pose是非空元组,那么在计算距离之前,它必须包含一个应用于ObjectModel3DFrom中的点的Pose。可以使用通用参数‘invert_pose’(见下面)来反转这个位姿。

根据目标数据类型(点、三角形或原语),有几种计算距离的方法。其中一些方法在ObjectModel3DTo的元素上计算数据结构,以加速距离计算。可以使用操作符prepare_object_model_3d预先计算这些数据结构。这允许对distance_object_model_3d的多个调用来重用数据结构,从而节省了为每个调用重新计算数据结构的时间。对于具有非三角形多边形面的对象,操作符prepare_object_model_3d可以额外执行三角剖分并将其保存到对象中,以进一步加速distance_object_model_3d操作符。只有在将通用参数’distance_to’设置为’triangle '时才会执行这种三角测量。注意,与操作符triangulate_object_model_3d相反,这种三角划分并不清除polygons属性。

当计算到点或三角形的距离时,操作符可以选择返回ObjectModel3DFrom中每个点的最近点或三角形的索引,方法是将通用参数‘store_closest_index’设置为‘true’(参见下面)。索引在3D对象模型ObjectModel3DFrom中存储为扩展属性’&closest_index’。注意,在使用“体素”方法时,不能计算最近的索引。如果点到最近元素的距离超过MaxDistance中设置的最大距离,则最近的索引设置为-1。

可以选择计算到点、三角形或原语的带符号距离。因此,必须将通用参数’signed_distance ‘设置为’true’。注意,当使用“体素”方法结合点到点距离时,不能计算符号距离。

下面将介绍不同的目标类型和方法,并描述它们的优缺点。注意,操作符根据目标数据类型自动选择默认方法。可以使用通用参数’method’覆盖此方法。

Distance to points:
计算点到点的距离有以下几种方法:

Linear search 线性搜索:

  • 对于ObjectModel3DFrom中的每个点,计算到ObjectModel3DTo中的所有点的距离,并使用最小的距离。这种方法不需要预先计算数据结构,并且对于ObjectModel3DTo中的少量点来说是最快的。

KD-Tree:

  • ObjectModel3DTo中的点被组织在一个kd树中,这加快了对最近点的搜索。树的构造非常高效。搜索时间与ObjectModel3DTo中的点数近似为对数。但是,搜索时间不是恒定的,并且根据查询点在ObjectModel3DFrom中的位置可能会发生显著变化。

Voxel 体素:

  • ObjectModel3DTo中的点组织在一个体素结构中。这种体素结构允许在几乎恒定的时间内进行搜索。,独立于查询点在ObjectModel3DFrom中的位置和在ObjectModel3DTo中的点的数量。但是,准备这个数据结构需要几秒钟或几分钟。它特别适合使用prepare_object_model_3d进行预计算。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

郭仁忠院士:新城市科学认知与智慧城市建设

来源: 慧天地张亚勤、刘慈欣、周鸿祎、王飞跃、约翰.翰兹联合推荐这是一部力图破解21世纪前沿科技大爆发背后的规律与秘密,深度解读数十亿群体智能与数百亿机器智能如何经过50年形成互联网大脑模型,详细阐述互联网大脑为代表的超级智能如何深…

MATLAB把多行多列矩阵数据和文字写入txt文件

效果: 代码: a[1,2,3;4,5,6;7,8,9] [m,~]size(a) fidfopen(a.txt,w); fprintf(fid,第一列\t第二列\t第三列\r\n); for i1:m fprintf(fid,%d\t%d\t%d\r\n,a(i,:)); end fclose(fid);

数字图像处理:视觉系统中的坐标系介绍

参考: 图像坐标系、摄像机坐标系与世界坐标系四个坐标系简介和转换世界坐标、相机坐标、图像坐标、像素坐标的原理、关系,并用matlab仿真 1、像素坐标系(Pixel coordinate system)(二维坐标系) 摄像机采集的数字图像在计算机内…

图灵机与控制论之分歧,一切为了人类心智的荣耀!

来源:新智元作者:李力、郑南宁、王飞跃编辑:小芹【导读】图灵和维纳的思想都对人工智能的研究之路产生了重要影响,本文讨论了AI发展过程中的主要困难,特别是解释了图灵的人工智能方法和维纳的人工智能方法之间的关键区…

Halcon学习笔记:xyz_attrib_to_object_model_3d示例

Halcon学习笔记:xyz_attrib_to_object_model_3d——从X、Y和Z图像中创建3D对象模型同时附加属性 xyz_attrib_to_object_model_3d.hdev This example program shows the usage of the procedurexyz_attrib_to_object_model_3d.It can be used to create 3D object …

理论计算机科学中最令人困惑的谜题之一被解开

来源:原理“自敏感度猜想提出以来,它便是所有组合学和理论计算机科学中最令人沮丧和尴尬的开放性问题之一。”德克萨斯大学奥斯汀分校的理论计算机学家Scott Aaronson在一篇博客中写道。Aaronson提到的猜想是一个与计算机电路的基本构件结构有关的猜想&a…

Halcon学习笔记:select_points_object_model_3d(3D对象模型阀值分割)

Halcon学习笔记:select_points_object_model_3d 3D对象模型阀值分割 This example program shows how to use the operators connection_object_model_3d and select_object_model_3d in HALCON. First, a threshold is applied to the 3D object model. Then, t…

MATLAB的GUI设置为不能点击状态(将按钮变为灰色)

有的时候想让GUI的按钮变灰,设置为不能点击状态,只有点击了另一个按钮后才能恢复该按钮的功能,举个例子,如下图所示,此时步骤1和步骤2这两个按钮是点击不了的,只有先点击了“打开图像”这个按钮&#xff0c…

脑结构、脑工作原理最详细图解

来源: 深度学习进阶学习社这个帖子很好地提醒了我,为什么我愿意跟如此美丽可爱的大脑一起工作。因为真正的大脑非常不可爱,长得也难看。但是,过去一个月,我一直生活在充斥着红色血管的 Google 图像的地狱里&#xff0c…

Halcon算子学习:create_pose

create_pose 创建3D位姿 ( : : TransX, TransY, TransZ, RotX, RotY, RotZ, OrderOfTransform, OrderOfRotation, ViewOfTransform : Pose) 输入: TransX 沿x轴平移(以[m]为单位)。 默认值:0.1 建议值:-1.0&#xff0…

Halcon算子学习:sample_object_model_3d

sample_object_model_3d ( : : ObjectModel3D, Method, SampleDistance, GenParamName, GenParamValue : SampledObjectModel3D) 示例一个3D对象模型 输入: ObjectModel3D 对3D对象模型的处理进行采样。 Method 选择不同的子采样方法。 默认值:“fast” 值列表:‘…

剑桥大学发布2019年度AI发展报告,预测未来12个月AI产业6件大事

来源:人工智能和大数据近日,剑桥大学发布了2019年度AI发展报告,在这份137页的报告中,涵盖了AI研究、人才、产业等多方面内容,值得一提的是,这份报告专门开辟了一个章节来介绍中国AI技术的发展。一、研究和技…

SQL Server安全(8/11):数据加密(Data Encryption)

在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切。但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念。这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用&#xf…

模拟人脑项目彻底宣告失败:耗资10亿欧,10年前轰动全球,如今死得悄无声息...

来源:凹非寺10年砸入10亿欧元,为了用计算机模拟人脑。这个十年前曾轰动全球的项目,如今彻底“死”了,死得悄无声息。要不是有位西方记者提起,人们几乎已经完全遗忘。模拟人脑?呵,实际连一只蠕虫…

变量传值

变量传值 PHP传方式有两种:赋值传值、引用传值 赋值传值: 将一个变量的值传递给另一个变量,array数组 示例: 引用传值: 将一个变量的内存地址传给另一个变量 写时复制: 对变量使用赋值传值时,PH…

物理学的忧伤,从现代物理学的死锁谈起

来源:量子学派“这是一篇信息量极大的文章,我不知道有多少人能真正读完。但希望大家能静下心来,暂且抛开生活的油盐酱醋茶,好好去感受一下——这些似乎离我们的生活太远的智慧和知识。”盛宴已过,天才再无用武之地&…

EPSON 程序

EPSON 代码程序 1.EPSON SPEL 语言代码示例: // String RCdata$, InData$, toks$(0), data1$, data2$, data3$ //定义字符型变量名需要添加“$”符号 Integer N, x Double VX(500), VY(500), VZ(500) #define delay_Time 0.1 Function mainSetNet #201, "19…

有人机/无人机混合编队协同作战研究综述与展望

来源: 人机与认知实验室摘要:有人机与无人机混合编队协同作战是未来空战的重要形式。有人机是中央指挥,而无人机直接接受有人机的指挥和控制,并进行战场态势感知、目标打击等。有人机和无人机可以看成空间上分离而逻辑上一体的巨型…

中国独角兽报告:2019

来源:泽平宏观文:恒大研究院 任泽平 连一席 谢嘉琪导读独角兽企业代表着新经济的活力,行业的大趋势,国家的竞争力。2018年全球资本市场风起云涌,独角兽势力大洗牌。有些独角兽融资困难,光环不再&#xff1b…

软银千亿美元愿景基金PPT,孙正义解读股权投资IRR=44%

来源:股权投资论坛(PE821010)综合“正和岛(zhenghedao)、皮卡丘财经、猎云网(ilieyun)、财立方(icailifang)、腾讯科技(qqtech)等综合 日本软银公司成立于1981年&#x…