PCL-表面(Surface)Smoothing and normal estimation based on polynomial reconstruction

本文主要是介绍PCL-表面(Surface)Smoothing and normal estimation based on polynomial reconstruction,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Moving Least Squares(MLS) 移动最小二乘法,可以用来平滑和重采样,接下来将介绍使用方法。https://en.wikipedia.org/wiki/Moving_least_squares(MLS介绍)

使用统计分析很难去除一些数据不规则(由小距离测量误差引起)。 要创建完整的模型,必须考虑光泽表面以及数据中的遮挡。 在无法获得额外扫描的情况下,解决方案是使用重采样算法,该算法尝试通过周围数据点之间的高阶多项式插值来重建表面的缺失部分。 通过执行重采样,可以校正这些小错误,并且可以将多次扫描注册所产生的“双道墙壁”一起平滑处理掉。

在上图的左侧,我们可以看到由两个注册点云组成的数据集的效果和估计表面法线。 由于对准误差,得到的法线有噪声。 在右侧,我们看到表面法线估计在使用移动最小二乘算法进行平滑后在同一数据集中的效果。 绘制每个点的曲率作为重采样之前和之后的特征值关系的度量,我们得到:

为了近似在点q处由局部邻点p1p2 … pk 定义的表面,我们使用简化的多项式高度函数,定义在一个稳定计算的参考平面。

代码

#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/surface/mls.h>int
main (int argc, char** argv)
{// Load input file into a PointCloud<T> with an appropriate type 加载pcdpcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ> ());// Load bun0.pcd -- should be available with the PCL archive in test pcl::io::loadPCDFile ("bun0.pcd", *cloud);// Create a KD-Tree 创建kd树pcl::search::KdTree<pcl::PointXYZ>::Ptr tree (new pcl::search::KdTree<pcl::PointXYZ>);// Output has the PointNormal type in order to store the normals calculated by MLSpcl::PointCloud<pcl::PointNormal> mls_points;// Init object (second point type is for the normals, even if unused)pcl::MovingLeastSquares<pcl::PointXYZ, pcl::PointNormal> mls;mls.setComputeNormals (true);//计算法线,不要可省略// Set parametersmls.setInputCloud (cloud);mls.setPolynomialOrder (2);mls.setSearchMethod (tree);mls.setSearchRadius (0.03);// Reconstructmls.process (mls_points);// Save outputpcl::io::savePCDFile ("bun0-mls.pcd", mls_points);
}

 

这篇关于PCL-表面(Surface)Smoothing and normal estimation based on polynomial reconstruction的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/514345

相关文章

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

【电子通识】半导体工艺——保护晶圆表面的氧化工艺

在文章【电子通识】半导体工艺——晶圆制造中我们讲到晶圆的一些基础术语和晶圆制造主要步骤:制造锭(Ingot)、锭切割(Wafer Slicing)、晶圆表面抛光(Lapping&Polishing)。         那么其实当晶圆暴露在大气中或化学物质中的氧气时就会形成氧化膜。这与铁(Fe)暴露在大气时会氧化生锈是一样的道理。 氧化膜的作用         在半导体晶圆

MACS bdgdiff: Differential peak detection based on paired four bedGraph files.

参考原文地址:[http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html](http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html) 文章目录 一、MACS bdgdiff 简介DESCRIPTION 二、用法

Neighborhood Homophily-based Graph Convolutional Network

#paper/ccfB 推荐指数: #paper/⭐ #pp/图结构学习 流程 重定义同配性指标: N H i k = ∣ N ( i , k , c m a x ) ∣ ∣ N ( i , k ) ∣ with c m a x = arg ⁡ max ⁡ c ∈ [ 1 , C ] ∣ N ( i , k , c ) ∣ NH_i^k=\frac{|\mathcal{N}(i,k,c_{

GNN中的Over-smoothing与Over-squashing问题

Over-squashing (过度压缩,顾名思义就是数据被“压缩”的过分小了,导致学不到什么东西。) 1、 why 会被压缩的过分小? 可能因为网络过深,那么在多层传播后,信息可能会被过度压缩(本质是特征减少了,当层数过多时会大大杂糅信息,导致特征减少,输出维度过小也会),导致细节丢失。 2、why 学不到什么东西? 会加剧梯度消失的现象,导致早期层几乎不学习,从而使得输入信息的重要细

Android Studio打开Modem模块出现:The project ‘***‘ is not a Gradle-based project

花了挺长时间处理该问题,特记录如下:1.背景: 在Android studio 下导入一个新增的modem模块,如MPSS.DE.3.1.1\modem_proc\AAA, 目的是看代码方便一些,可以自由搜索各种关键字。但导入该项目时出现了如下错误: The project '***' is not a Gradle-based project.造成的问题: (1) project 下没有代码,而

SIM(Search-based user interest modeling)

导读 我们对电商场景兴趣建模的理解愈发清晰:1. 通过预估目标item的信息对用户过去的行为做search提取和item相关的信息是一个很核心有效的技术。2. 更长的用户行为序列信息对CTR建模是非常有效且珍贵的。从用户的角度思考,我们也希望能关注用户长期的兴趣。但是当前的search方法无论是DIN和DIEN都不允许我们在线对一个超长的行为序列比如1000以上做有效搜索。所以我们的目标就比较明

Segmentation简记-Multi-stream CNN based Video Semantic Segmentation for Automated Driving

创新点 1.RFCN & MSFCN 总结 网络结构如图所示。输入视频得到图像分割结果。 简单粗暴

Attribute Recognition简记1-Video-Based Pedestrian Attribute Recognition

创新点 1.行人属性库 2.行人属性识别的RNN框架及其池化策略 总结 先看看行人属性识别RNN结构: backbone是ResNet50,输出是每一帧的空间特征。这组特征被送到两个分支,分别是空间池化和时间建模。最后两种特征拼接。然后分类(FC)。 LSTM关注帧间变化。受cvpr《Recurrent Convolutional Network for Video-Based Person

ASTER L2 表面反射率 SWIR 和 ASTER L2 表面反射率 VNIR V003

ASTER L2 Surface Reflectance SWIR and ASTER L2 Surface Reflectance VNIR V003 ASTER L2 表面反射率 SWIR 和 ASTER L2 表面反射率 VNIR V003 简介 ASTER 表面反射率 VNIR 和 SWIR (AST_07) 数据产品 (https://lpdaac.usgs.gov/documen