三维模型转点云格式

时间:2024-04-03 18:43:05

最近碰到三维模型处理问题,我需要使用三维模型的点云,但是手头只有三维模型的solidworks文件,需要把solidworks文件转成点云。
有一种方法是使用meshlab处理。在sw里把文件另存为stl格式,然后在meshlab中打开,然后细分模型,最后另存为xyz格式。但这种方法有一个很大的缺点,就是点云很不均匀,在平面区域点非常少,所以这个方法gg。
知乎上有人给了一个方法link,用pcl库的命令行工具pcl_mesh2pcd或者pcl_mesh_sampling。我用的pcl_mesh2pcd,给出我的操作过程供大家参考。

1 模型另存为stl格式

solidworks中把文件另存为stl格式,然后用crossmanager把stl格式转为obj格式(pcl_mesh2pcd只识别obj和ply格式)

2 在ubuntu命令行下输入 pcl_mesh2pcd -leaf_size 0.1 input.obj output.pcd (前提安装了pcl库)

这是转换结果,效果不错。-leaf_size参数控制采样密度,我的采样密度太大了,结果有37万个点,可以增大-leaf_size或者用pcl_voxel_grid命令,不过pcl_voxel_grid输出的文件是二进制格式。
三维模型转点云格式
减少了点数量,大概3万个:
三维模型转点云格式
上面知乎链接里有人碰到运行pcl_mesh2pcd命令core dumped bug,我的电脑运行没问题,如果有人知道解决办法可以在评论区分享一波。