1. 程式人生 > >pcl:三維模型obj格式轉成pcl常用點雲處理格式.pcd+matlab:.ply.pcd+其他.stl,.obj,.ply等三維格式互相轉化方法

pcl:三維模型obj格式轉成pcl常用點雲處理格式.pcd+matlab:.ply.pcd+其他.stl,.obj,.ply等三維格式互相轉化方法

①程式碼:

#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/io/obj_io.h>
#include <pcl/PolygonMesh.h>
#include <pcl/point_cloud.h>
#include <pcl/io/vtk_lib_io.h>//loadPolygonFileOBJ所屬標頭檔案;

using namespace pcl;
int main()
{
pcl::PolygonMesh mesh;
pcl::io::loadPolygonFileOBJ("d:\head1.obj", mesh);
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::fromPCLPointCloud2(mesh.cloud, *cloud);
pcl::io::savePCDFileASCII("d:\head1PCD.pcd", *cloud);
return 0;
}

②matlab R2017a新功能(可以互相轉化帶顏色的.ply <-> 帶顏色的.pcd):

ptCloud = pcread(‘0.ply’); % read from a PLY file
pcwrite(ptCloud,'0.pcd'); 

其他.stl,.obj,.ply,.xyz等三維格式互轉方法:用軟體meshlab開啟例如.obj,在匯出選項裡面,選擇你想要轉化的格式(例如.ply),匯出即可!轉化十分簡單!

(當然,你要是瞭解了.pcd或者.obj或者.ply或.xyz等檔案格式的規則,不借助其他工具函式,自己用matlab等來寫程式碼轉化也是可以的,也不難。)