三维点云重建 — open3d python

本文为博主原创文章,未经博主允许不得转载。
本文为专栏《python三维点云从基础到深度学习》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/124017716”。

        这里三维点云重建是指根据三维点云重建目标的表面或轮廓,即表面重建。三维点云是一批离散的点,这样空间中必然回有一些位置是空的,没有数据信息。点云重建是让三维物体的表面都由一个个平面组成,即在表面处成为连续状态。这里仅介绍open3d中几个三维重建函数。

1 Alpha shapes

        Alpha shapes 是一种散点外轮廓的提取方法。open3d中对应的函数为create_from_point_cloud_alpha_shape,其关键参数为alpha。alpha是该方法在搜索外轮廓时的半径大小。alpha值越小,网格的细节就越多,分辨率越高。  

mesh = o3d.geometry.TriangleMesh.create_from_point_cloud_alpha_shape(pcd, alpha=2)

2 Ball pivoting

        Ball pivoting滚球算法的思路来源于Alpha shapes,是从二维到三维的一种转换。Ball pivoting也是一种用作点云三角化的常用方式。 open3d中对应的函数为create_from_point_cloud_ball_pivoting,其关键参数为radii。radii是滚球的半径,而且可以设置多个值,也就是可以用多个尺寸的滚球来进行三角面构建。注意事项:该方法要求点云必须有法向量,或者在此之前使用法向量计算函数计算出法向量。

猜你喜欢

转载自blog.csdn.net/suiyingy/article/details/124539257
今日推荐