pcl:三维模型obj格式转成pcl常用点云处理格式.pcd+matlab:.ply<->.pcd+其他.stl,.obj,.ply等三维格式互相转化方法
2016-12-29 19:07
2983 查看
①代码:
#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等来写代码转化也是可以的,也不难。)
#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等来写代码转化也是可以的,也不难。)
相关文章推荐
- 基于PCL的三维重建——txt文件格式转化pcd文件格式
- <Effectives STL>笔记之在STL容器中删除元素的方法选择
- 实体或List(IList<T>)转换JSON格式的简便方法
- jQuery 常用方法大全<2>
- 常用方法一:随机数生成、检测非法字符、判断数字格式、是否为空、枚举值转化为数组
- iOS学习笔记<20> iOS中的GCD多线程模型 & ios事件的通知方法
- ASP.NET中不常用的另类绑定方法<%$ %>
- 常用方法归档-获取<日期、字符串倒写、随机数、读写文件>
- HTML <style>中一些常用的定义格式
- 用vector<CStringArray>会报错;数组(一维、二维、三维)的动态申请及用vector的表示方法
- Json数据格式常用处理方法
- <转载>在C#中利用Keep-Alive处理Socket网络异常断开的方法
- 常用头文件-字符处理-<cctype>
- 讨论exe获取dll提供的单例,并获取单例所提供的带有vector<class A>& STL容器的返回值的情况-提供1种解决方法
- asp.net 常用字符串过滤方法 <转>
- Select I/O模型来实现一个并发处理多个客户端的TCP服务器 <转>
- ASP.NET中不常用的另类绑定方法<%$ %>
- Java 处理Map<K,V>的方法
- 整理一下List<T>的常用方法
- 方法格式在<s:iterator>中,将时间输出显示格式化