前言
近来写毕业论文,想根据自己的要求生成一些点云数据,发现PCL库可以根据obj格式的文件生成点云,而且点云的数量可控。
一、 绘制.obj格式的三维图
画obj格式的图像很多三维软件都可以实现,我这里是用soliworks中的scan to 3d插件实现的。提前准备好scan to 3d插件,在工具->插件->ScanTo3D中打钩。
1.1 绘制零件图
首先,画一个三维零件图,不会的先去学solidworks。
1.2 另存为stl
点击另存为.stl格式
这个格式的文件,Windows自带的3D软件是能打开的,如下:
1.3 另存为obj
点击文件->打开,选择网格文件,注意:这个要你打开ScanTo3D插件了才会显示。
然后点击,文件->另存为,选择.obj格式
这个时候就能得到一个.obj格式的文件了,同样可以使用Windows自带的软件打开。
二、使用PCL采样点云
PCL库有个 pcl_mesh_sampling.exe可以用来从obj生成pcd格式的点云。在安装PCL的路径下将bin文件夹打开,找到文件pcl_mesh_sampling_release.exe或是pcl_mesh_sampling_debug.exe文件。我习惯将他拿出来,放在一个常用的文件夹,此处我直接放在d盘了。然后将先前的obj文件放在同级目录下(为了方便)。在命令窗口打开 pcl_mesh_sampling.exe,进入这个exe所在的文件夹,shift+鼠标右键,在此处打开Powershell窗口。输入 pcl_mesh_sampling.exe -h查看使用方法。
可以看到,除了obj格式的文件,ply格式的文件也可以使用改功能转化为pcd。另外,可以根据数量或者密度来生成点云,也可以把点云法向量、颜色等信息记录到pcd文件。根据提示输入就行了,这里写了个例子,设置采样密度0.02.然后你就能在文件夹下得到一个part1.pcd文件啦。
注意:这里有个问题,就是你的leafsize不能设置的太小,或者n_samples不能设置的太大,不然会报错无法生成的。
用matlab做下可视化看看,如下:
下一篇预告,点云配准