20

我正在尝试从 Maya 的 (.obj) 文件等网格生成点云数据。但是,我只能找到相反的情况,点云在互联网上网格化。有什么方法可以使用 MeshLab 或 Maya 等 3D 工具创建“来自网格的点云数据”?(我更喜欢使用 MeshLab)

谢谢。:)

4

6 回答 6

15

免费的开源项目CloudCompare可以加载 OBJ 网格,然后在网格上生成点云,然后您可以将其保存为各种格式。

于 2017-01-26T07:41:00.173 回答
6

点云库有几个不同的命令行工具,用于将网格转换为点云,据我所知,通过将对象渲染为一组视图中的点并组合渲染。例如 pcl_mesh2pcd、pcl_mesh_sampling

于 2014-12-02T09:44:24.597 回答
6

将三角网格转换为点云意味着您要在该表面上进行点采样。根据所需的分布(例如 Uniform Montecarlo、Poisson Disk 等),有不同的算法会产生完全不同的结果。例如,如果您需要间隔良好的随机点,则需要泊松磁盘分布。您可以在 meshlab 内或直接在http://www.meshlabjs.net/上的浏览​​器上测试其中一些算法(只需加载网格并在搜索框中输入“采样”)。

您可以在网格处理 vcg 库 ( http://www.vcglib.net )中找到一个 c++ 开源实现以及这些算法的描述(实现起来非常简单):

具有三角形网格蓝噪声特性的高效灵活采样
M Corsini, P Cignoni, R Scopigno
IEEE Transactions on Visualization and Computer Graphics 18 (6), 914-924
http://vcg.isti.cnr.it/Publications/2012/ CCS12/

于 2016-10-18T22:18:27.797 回答
2

有趣的是,这个问题在网络上没有任何明确的答案。

从网格到点云的转换与网格的顶点干扰到点云中不同!网格是点云的稀疏表示。因此,要将网格转换为点云,您需要对网格表面上的点进行采样。PCL有一个用于执行此操作的实用程序,称为pcl_mesh_sampling. 源代码位于此处

基本上,该方法N使用 VTK 从网格表面均匀采样点。它非常有效,您将获得包含任意数量点的点云。

于 2016-02-23T15:58:58.357 回答
2

我正在寻找类似的问题。我需要以不同的姿势投影网格模型以生成点云数据。

然后我在 github 中找到了以下项目。如果有人想从各种姿势的网格对象 (.obj)生成点云 ( .pcd) ,这将有所帮助。

这将为给定的网格对象模拟 kinect 格式的点云。

https://github.com/jbohg/render_kinect

于 2016-06-08T22:04:47.937 回答
2

我也想做同样的事情,但更喜欢可以在 Python 中轻松完成的事情。我发现这篇文章非常有用。它使用一个名为pyntcloud的 Python 库。它以 .ply 格式加载网格并从中随机采样指定数量的点,使其以或多或少均匀的方式覆盖表面。它可以很容易地适应其他格式。我已经为 .off 文件这样做了,而且效果很好。

于 2017-07-29T17:29:46.360 回答