我可以从网格生成点云吗?

时间:2014-12-01 09:08:06

标签: 3d mesh maya point-clouds meshlab

我试图从网格中生成点云数据,例如Maya的(.obj)文件。 但是,我只能找到相反的情况,在互联网上点云点。 有没有办法从网格中创建"点云数据"使用MeshLab或Maya等3D工具? (我更喜欢使用MeshLab)

感谢。 :)

6 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:5)

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

答案 2 :(得分:2)

有趣的是,网上对此问题没有任何明确的答案。

从网格到点云的转换类似于将网格的顶点干扰到点云中!网格是点云的稀疏表示。因此,要将网格转换为点云,您需要在网格的表面上采样点。 PCL有一个名为pcl_mesh_sampling的实用程序。源代码为located here

基本上,方法样本N使用VTK从网格表面均匀地指向。它非常有效,您可以获得任意数量的点云。

答案 3 :(得分:2)

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

你可以在网格处理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/

答案 4 :(得分:1)

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

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

这将模拟给定网格对象的kinect格式pointcloud。

https://github.com/jbohg/render_kinect

答案 5 :(得分:1)

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