【点云重采样Resampling】Python-pcl 基于多项式平滑点云及法线估计的曲面重建

news/2024/7/2 14:30:47

1. 点云重采样

基于多项式平滑点云及法线估计的曲面重建以实现重采样,可以使得点云数据更规整一些,没之前那么杂乱。

  • set_Compute_Normals(True) 可以通过在最小二乘法中进行法线估计,提高重采样准确度;
  • set_polynomial_fit(True) 可以通过不需要多项式拟合来加快平滑速度,设置为True则在整个算法运行时采用多项式拟合来提高精度;

2. 效果如下:

重建前:

正面:
在这里插入图片描述侧面:
在这里插入图片描述
重建后:

正面:
在这里插入图片描述
侧面:
在这里插入图片描述
可以看到重采样后点云的形状清晰了许多。

3. 源码

# -*- coding: utf-8 -*-
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
#  <基于多项式平滑点云及法线估计的曲面重建重采样,使得数据更规整一些,没之前那么杂乱>Smoothing and normal estimation based on polynomial reconstructionhttp://pointclouds.org/documentation/tutorials/resampling.php#moving-least-squares
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
import pcldef main():# 加载点云cloud = pcl.load('D:/tests/examples/official/Surface/bun0.pcd')print('cloud(size) = ' + str(cloud.size))# 构建kd树tree = cloud.make_kdtree()# 重建mls = cloud.make_moving_least_squares()print('make_moving_least_squares')mls.set_Compute_Normals(True)  # 设置在最小二乘计算中需要进行法线估计mls.set_polynomial_fit(True)  # 可以通过不需要多项式拟合来加快平滑速度,设置为true时则在整个算法运行时采用多项式拟合来提高精度mls.set_Search_Method(tree)mls.set_search_radius(0.03)print('set parameters')mls_points = mls.process()print('mls_points(size) = ' + str(mls_points.size))# 存储重采样结果pcl.save_PointNormal(mls_points,'D:/tests/examples/official/Surface/bun0-mls-nonormas.pcd')if __name__ == "__main__":main()

参考:

  • http://pointclouds.org/documentation/tutorials/resampling.php#moving-least-squares

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Open3D KdTree建立、3种近邻搜索及结果可视化

1. 点云索引 Open3D KdTree,可以快速的在无序的点云中建立空间拓扑结构,使得能迅速的进行近邻搜索; 2. 近邻方法分类: Open3D这边支持的近邻搜索方法由VTK实现; K近邻搜索(K Nearest Neighbors Search)半径近邻搜索(Radius Nearest Neighbors Search)混合近邻搜索(…

Open3D 点云法向量3种估计方法及法向量可视化

点云3种法向量估计方法及可视化 1)点云读取可视化2)下采样可视化3)法向量三种估计方式(K近邻估计,半径近邻估计,混合搜索估计)4)点云每个点对应的法向量点存储及可视化5)法向量点和原始点云同时可视化6)源码1)点云读取可视化 原始点云: 2)下采样可视化 下采样:…

使用Python,OpenCV创建动画GIF图和模因生成器

在这篇博客中,我们将学习如何使用Python,OpenCV,dlib和ImageMagick工具箱创建动画GIF。 然后,您将结合所有这些技术,使用OpenCV构建一个模因生成器(眼镜👓和文字Deal with it) 效果图: 首先,讨论该项目的先决条件和依赖项,包括如何正确配置开发环境。 然后,将审…

使用Python,OpenCV和Hough圆检测图像中的圆

使用Python,OpenCV和Hough圆检测图像中的圆 1. 效果图2. cv2.HoughCircles(image, method, dp, minDist)3. 源码参考前几篇博客中有介绍,使用OpenCV检测图形中的三角形、正方形、矩形,多边形;这篇博客将展示如何利用cv2.HoughCircles函数使用OpenCV检测图像中的圆圈。 1. …

用Duplex实现消息广播

http://blog.csdn.net/fangxinggood/archive/2011/01/15/6142861.aspx WCF中定义3种消息交换模式&#xff1a; 1. Request/Reply; 2. One-Way; 3. Duplex。 Request/Reply 是缺省模式&#xff0c;即同步调用。在调用服务方法后需要等待服务的消息返回&#xff0c;即便该方法返…

Python OpenCV应用K均值聚类进行颜色量化

Python OpenCV应用K均值聚类进行颜色量化 1. 效果图2. 颜色量化是什么?3. MiniBatchKMeans & KMeans4. 源码参考在这篇博客文章中,我将向您展示如何使用K-means聚类和颜色量化在图像中创建“ A Scanner Darkly”效果。 1. 效果图 左侧原始图像,右侧颜色量化图像

[Buzz.Today]2011.05.25

>> VMWare的Open Source Pass - CloudFoundry VMWare推出了开源Pass&#xff1a;CloudFoundary&#xff0c;但是现在只是支持少数几种语言与环境&#xff1a;Java Spring, ROR and Node.JS。。 Source Code on GitHub: https://github.com/cloudfoundry 随便瞄了两眼&…

Git统计个人提交代码行数

1. Git统计个人提交代码行数 git log --format%aN | sort -u | while read name; do echo -en "$name\t"; git log --author"$name" --prettytformat: --numstat | awk { add $1; subs $2; loc $1 - $2 } END { printf "added lines: %s, removed …