Halcon算子学习:smooth_object_model_3d

在这里插入图片描述

smooth_object_model_3d

( : : ObjectModel3D, Method, GenParamName, GenParamValue : SmoothObjectModel3D)
平滑3D对象模型的3D点

输入:

  • object_model_3d(input_control)
    包含3D点数据的3D对象模型的句柄。
  • Method(input_control)
    平滑方法。
    默认值:“ mls”(移动最小二乘法)
    值列表:“ mls”
  • GenParamName(input_control)属性
    通用平滑参数的名称。
    默认值: []
    值列表:“ mls_abs_sigma”,“ mls_force_inwards”,“ mls_kNN”,“ mls_order”,“ mls_relative_sigma”
  • GenParamValue(input_control)属性
    通用平滑参数的值。
    默认值: []
    建议值:10、20、40、60、0.1、0.5、1.0、2.0、0、1、2

输出:

  • object_model_3d
    带有光滑的三维点数据的三维对象模型的句柄。

算子说明

操作符smooth_object_model_3d使用方法指定的方法对ObjectModel3D中的3D点进行平滑处理。得到的平滑点在SmoothObjectModel3D中返回。目前,移动最小二乘法(Method=’ MLS ')是唯一支持的平滑方法。

对于每个点P, MLS平滑算法将一个平面或一个高阶多项式曲面与其k邻域(k个最近点)相匹配。曲面拟合实质上是对平面或多项式曲面参数分别进行加权最小二乘参数估计的一种标准方法。P的最近邻的贡献比其他点的贡献大,这是由下面带参数σ(sigma) 的加权函数控制的:
在这里插入图片描述
然后将点投射到表面上。对所有点重复这个过程,得到一个平滑的点集。(它们可以很容易地从表面参数计算出来)。因此,这些点被相应的法线作为平滑的副作用加以扩大。
通过将GenParamName设置为以下值之一,可以用GenParamValue设置额外的MLS特定参数:

  • “mls_kNN”:
    指定用于将MLS曲面与每个点匹配的最近邻k的数量。
    建议值:40、60(默认值)、80、100、400

  • “mls_order”:
    指定MLS多项式曲面的顺序。对于’mls_order’=1,表面是一个平面。
    建议值:1、2(默认值)、3

  • “mls_abs_sigma”:
    将加权参数指定为以米为单位的固定绝对值。要选择的值取决于点数据的规模。根据经验,可以选择P点与其k/2相邻点之间的典型距离。注意,对于不同密度的点数据设置一个绝对加权参数,可能会导致位于不同密度点数据部分的点的平滑结果不同。
    这个问题可以通过使用’mls_relative_sigma’来避免,它是与比例无关的,这也使它成为指定邻域加权的一种更方便的方法。注意,如果传递了’mls_abs_sigma’,则忽略’mls_relative_sigma’中的任何值。
    建议值:0.0001,0.001,0.01,0.1,1.0

  • “mls_relative_sigma”:
    指定一个乘法因子,用于计算点P的公式:
    注意,与所有点的全局参数不同,它是为每个点P计算的,因此使权重函数适应于它的邻域。这避免了在试图将全局参数(‘mls_abs_sigma’)设置为具有高度变化的点密度的点数据时可能出现的问题。但是请注意,如果设置了’mls_abs_sigma’,则忽略’mls_relative_sigma’。
    建议值:0.1、0.5、1.0(默认值)、1.5、2.0

  • “mls_force_inwards”:
    如果这个参数设置为“真”,所有的表面法线都指向“原点的方向”。用数学方法表示,可以保证法向量和从各自的曲面点到原点的向量的标量积是正的如果生成的SmoothObjectModel3D用于基于表面的匹配,可能需要这样做,无论是作为create_surface_model中的模型,还是作为find_surface_model中的3D场景,因为在这里,法线的一致方向对于匹配过程非常重要。如果’mls_force_inwards’设置为’false’,则法向量的方向是任意的。
    可能的值:‘true’, ‘false’(默认值)

注意:

  • 如果不再需要或应该覆盖3D对象模型,则必须首先通过调用操作符clear_object_model_3d来释放内存。

平滑后的结果对比:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

机器人巨头争霸,谁主沉浮?

来源:高工机器人过去以来,ABB、发那科、安川、库卡这四家机器人巨头独霸中国一半以上的市场份额。但这一情况开始逆转,本土企业在被外企“教育”了多年之后,开始用更大的勇气和更快的创新速度给以“老师”们迎头痛击。2019年&…

MATLAB使用imshow之后plot的坐标原点在左上角!

在MATLAB使用imshow显示一张图后,如果继续在这张图中使用plot画图,则此时坐标原点换到了左上角,不再是左下角了,如下面的例子: figure(1); imshow(K) hold on plot(x,y) %此时原点在左上角

Halcon算子学习:create_surface_model

create_surface_model ( : : ObjectModel3D, RelSamplingDistance, GenParamName, GenParamValue : SurfaceModelID) 创建执行基于表面的匹配所需的数据结构 输入: object_model_3d 3D对象模型的句柄。RelSamplingDistance (input_control) real→(real) 相对于物…

任正非:5G独立组网全世界只有华为一家做好了 我们在等待高通进步

任正非来源: TechWeb华为创始人、CEO任正非7月18日在广东接受了意大利媒体的采访。近日,华为在心声社区公布了这次采访的圆桌纪要。在回答意大利媒体记者的提问中,任正非表示:“国际媒体对华为几乎都是负面报道,因为他…

MATLAB判断文件是否存在、删除文件

MATLAB判断文件是否存在: exist(output.txt,file) 如果output.txt存在,返回2,若不存在返回0 MATLAB删除文件: delete(output.txt);

Halcon算子学习:find_surface_model

find_surface_model ( : : SurfaceModelID, ObjectModel3D, RelSamplingDistance, KeyPointFraction, MinScore, ReturnResultHandle, GenParamName, GenParamValue : Pose, Score, SurfaceMatchingResultID) 在3D场景中找到一个表面模型的最佳匹配。 输入: Surf…

遗传算法学习笔记(一):常用的选择策略

简述 遗传算法(GA)是一种模拟生物进化自然选择过程的非确定性搜索方法,源于达尔文的进化论和孟德尔的遗传定律,由美国 Michigan 大学的 Holland教授在 20 世纪 70 年代首先提出。生物理论指出, 生物个体的各种生命表征是由许多基因共同决定的…

Nature指明大脑引流“废液”的确切路径

来源:中国生物技术网多年来,科学家们一直认为大脑中缺少淋巴系统,从而引发了液体、大分子和免疫细胞是如何被清除出去的问题。2015年,有两项小鼠研究证实,脑膜(保护大脑并维持其形状的覆盖物)的…

Halcon算子学习:distance_object_model_3d

distance_object_model_3d ( : : ObjectModel3DFrom, ObjectModel3DTo, Pose, MaxDistance, GenParamName, GenParamValue : ) 计算一个3D对象模型到另一个3D对象模型的点的距离。 输入: object_model_3d→(整数) 源3D对象模型的句柄。ObjectModel3DTo 目标3D对象…

js的工作原理

JavaScript就是所谓的客户端脚本语言,是一种在互联网浏览器(浏览器也称为Web客户端,因为它连接到Web服务器上,以下载页面)内部运行的计算机编程语言。 也就是说,如果一个网页里有js代码,那么&am…

MATLAB判断数据是否为NaN

MATLAB判断数据是否为NaN可以直接使用函数isnan()

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

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

unity 面试题

今天这套笔试题感觉做得一般。 随后是二对一的技术面试,但涉及的技术细节相对较少,很多其它的是对曾经工作、项目经历的询问。 然后说今天先到这里。让我等通知。我还特意问了一下,通知大概要多久,他们说这个得看hr,他…

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发展过程中的主要困难,特别是解释了图灵的人工智能方法和维纳的人工智能方法之间的关键区…

PyQt4重写事件处理方法

PyQt中的事件处理主要以来重写事件处理函数来实现。 #!/usr/bin/python # -*- coding: utf-8 -*-import sys from PyQt4 import QtGui, QtCore class Escape(QtGui.QWidget):def __init__(self, parent None):QtGui.QWidget.__init__(self)self.setWindowTitle(escape)self.re…

im2bw函数的阈值level

im2bw函数是MATLAB用于图像二值化的函数&#xff0c;调用形式为&#xff1a; J im2bw(I,level) 其中阈值level是一个0-1的值&#xff0c;如果输入的图像像素值范围0-255&#xff0c;设置阈值level160&#xff0c;则该函数会将图像中像素值<160的点置为0&#xff0c;像素值…

Halcon学习笔记:xyz_attrib_to_object_model_3d示例

Halcon学习笔记&#xff1a;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 …