我试图从网格中生成点云数据,例如Maya的(.obj)文件。 但是,我只能找到相反的情况,在互联网上点云点。 有没有办法从网格中创建"点云数据"使用MeshLab或Maya等3D工具? (我更喜欢使用MeshLab)
感谢。 :)
答案 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。
答案 5 :(得分:1)