最近想要尝试将三维数模(大多是solidworks创建的)转化为点云。操作也比较简单,以防万一以后要使用的时候忘记,特此记录一下。
在安装PCL库之后,库中有.exe文件可以用于将数模转化为点云。一般来说后面多了一个d的是debug模式下的,不加d的一般为release模式的。下图中框选的都是可以用于转化为点云的exe。
本人一般使用debug,所以选择pcl_mesh_samplingd.exe。这几个.exe文件都测试了一下,发现使用pcl_mesh_samplingd.exe转化成的pcd文件的点云最为稠密。
具体操作流程:
1.打开cmd,并且cd到pcl_mesh_samplingd.exe文件所在的目录下。
2.输入pcl_mesh_samplingd.exe XXX.obj AAA.pcd。其中XXX是待转化的obj文件所在的路径及其名称,例如D:\aaa\file.obj。AAA则是转化成的pcd文件存储的路径,这个可以自己选择。
完成之后就可以在AAA路径下找到pcd文件了。
还有个软件叫做meshlab(开源)可以实现格式转化,meshlab下载网址。
目前还没尝试下载成功,所以不知道这种方法产生的点云是否能够更加稠密。
更新
下载安装了MeshLab,使用MeshLab将stl文件转化为点云,点击file->点击import mesh->选中stl文件就可以实现用meshlab打开三维数模。然后再次点击file->点击import mesh as就可以将文件另存为ply文件。ply文件就可以直接用PCL库进行可视化了。得到的点云非常稀疏,该方法还不如使用pcl_mesh_samplingd.exe。
参考:
3d模型如何生成点云数据?
meshlab将stl转化为点云
【PCL】SolidWorks 三维建模 STL, OBJ 采样生成 PCD 点云数据(附源码)
PCL 从 CAD模型(STL,OBJ) 采样得到点云 (renderViewTesselatedSphere 函数详解)