Convert PLY to VTK Using PCL 1.6.0 or PCL 1.8.0 使用PCL库将PLY格式转为VTK格式
PLY格式是比较流行的保存点云Point Cloud的格式,可以用MeshLab等软件打开,而VTK是医学图像处理中比较常用的格式,可以使用VTK库和ITK库进行更加复杂的运算处理。我们可以使用ParaView软件对VTK格式文件进行预览和简单处理,ParaView也可以打开PLY格式,但是就没有texture了,而且我们如果直接用ParaView导出VTK格式也没有texture的,这不是我们想要的结果。MeshLab虽然可以打开有texture的PLY文件,但是却不支持导出VTK格式,那么我们如何将PLY转为VTK格式并且保留texture呢?我们可以用PCL库来转换,PCL全称是Point Cloud Library,是专门处理点云的库,功能十分强大,提供saveVTKFile函数可以保存vtk,就是要注意参数的类型,做一些类型转换即可。
Using PCL 1.6.0:
// PCL 1.6.0 #include <iostream> #include <string> #include <pcl/io/vtk_io.h> #include <pcl/io/ply_io.h> #include <pcl/point_cloud.h> #include <pcl/point_types.h> #include <pcl/ros/conversions.h> #include <sensor_msgs/PointCloud2.h> typedef pcl::PointXYZRGB PointT; typedef pcl::PointCloud<PointT> PointCloudT; int main() {std::string filename = "in.ply";PointCloudT::Ptr pc(new PointCloudT);if (pcl::io::loadPLYFile (filename, *pc) == -1) {PCL_ERROR("Error reading point cloud %s\n", filename.c_str());return 0;}sensor_msgs::PointCloud2 cloud2;pcl::toROSMsg(*pc, cloud2)pcl::io::saveVTKFile("out.vtk", cloud2);return 0; }
Using PCL 1.8.0:
// PCL 1.8.0 #include <iostream> #include <string> #include <pcl/io/vtk_io.h> #include <pcl/io/ply_io.h> #include <pcl/point_cloud.h> #include <pcl/point_types.h> #include <pcl/PCLPointCloud2.h> #include <pcl/conversions.h> typedef pcl::PointXYZRGB PointT; typedef pcl::PointCloud<PointT> PointCloudT; int main() {std::string filename = "in.ply";PointCloudT::Ptr pc(new PointCloudT);if (pcl::io::loadPLYFile (filename, *pc) == -1) {PCL_ERROR("Error reading point cloud %s\n", filename.c_str());return 0;}pcl::PCLPointCloud2 cloud2;pcl::toPCLPointCloud2(*pc, cloud2);pcl::io::saveVTKFile("out.vtk", cloud2);return 0; }
本文转自博客园Grandyang的博客,原文链接:使用PCL库将PLY格式转为VTK格式Convert PLY to VTK Using PCL 1.6.0 or PCL 1.8.0 ,如需转载请自行联系原博主。
Convert PLY to VTK Using PCL 1.6.0 or PCL 1.8.0 使用PCL库将PLY格式转为VTK格式相关推荐
- PCL 1.8.1 在VS2015中配置 包含目录、库目录和附加依赖项
PCL 1.8.1 在VS2015中配置 包含目录.库目录和附加依赖项 1. 包含目录 2. 库目录 3. 附加依赖项 如果想要永久配置,需要在属性管理器中进行. 1. 包含目录 C:\Program ...
- vtk体绘制代码报错的解决办法(代码在vtk7,8,9中都能运行),以及VTK数据集网站
链接:vtk7.1.1官方文档 链接:官方示例代码 链接:VTK资源网站(需要什么资源搜索就行,官网示例中的数据集.资源基本都有) 体绘制代码运行不了,一直报错的解决方案 大家应该都看过VTK图形图像 ...
- ply格式转为obj,stl等格式
ply格式转为obj,stl等格式 一般方法是使用meshlab或matlab等软件工具进行转化,需要配置环境,调试程序等一系列准备工作,工作量大,一般人只是使用一下,并不准备研究这些工具. 在这里推 ...
- PCL第三方库:Eigen, Flann , Qhull, VTK, Boost简介
前言: PCL作为机器人软件的一个基础类库,融合了基础结构.算法和三维显示.其大量使用第三方库,使用了Boost.Eigen.Flann.VTK.Boost.CUdnn等. 第一预备役:Boost ...
- PCL学习(3)——kdtree搜索(error C2079: “pcl::KdTreeFLANN::param_radius_)
简介: 算法原理 1.建立kdtree 主要有两步操作:选择合适的分割维度,选择中值节点作为分割节点: 分割维度的选择遵循的原则是,选择范围最大的纬度,也即是方差最大的纬度作为分割维度: 分割节点的选 ...
- ActiViz(VTK的C#库)C#64位VTK如何在Visual Studio里创建RenderWindowControl控件
Visual Studio17里只支持x86位控件拖拽,不支持x64.那怎样在64位的组件form窗口中放RenderWindowControl控件呢?下面我们就详细介绍一下在Visual Studi ...
- VTK读取dicom序列,并保存成vtk和obj格式的3D格式文件
在vs中配置好vtk之后,新建项目,然后加入如下代码. #include "stdafx.h" #include <vtkAutoInit.h> VTK_MODULE_ ...
- PCL点云库必备知识点4——pointcloud2消息格式的转换
1 sensor_msgs::PointCloud2ConstPtr与sensor_msgs::PointCloud2的转换 参考链接 sensor_msgs::PointCloud2ConstPtr ...
- Qt VTK软件开发问题学习记录
1. 0x00000000000000处有未经处理的异样 程序运行时出现下面问题肯定是内存错误,但到底是数组越界(数组边界溢出),指针错误,链接库问题......就需要进一步调试(debug). 链接 ...
最新文章
- 大厂面试通关图鉴:骚话走一走,百万薪到手!
- php 扩展的so文件位置
- python主线程执行_python 并发执行之多线程
- Leetcode 153. 寻找旋转排序数组中的最小值 (每日一题 20211014)
- 【学术相关】11 个好用的科研工具推荐!工作效率提升 max!
- SpringBoot 迭代输出
- 不浮躁的社会是什么样的?
- C/C++实现删除字符串的首尾空格
- javascript中的'this'
- sql-labs超详细教程
- 【python文本分析】——基于股评文本的情绪分析
- SQLServer2019安装教程
- 在 VS Code 中开始使用 Python
- 查询当前数据库名、用户名、数据库服务器IP、端口、数据库版本信息。
- HCL实验-使用ACL进行SSH服务器的登录源限制的简单实验(NAT+SSH+ACL)
- python(进阶篇)——自动化操作Excel(xlrd和xlwt)
- word中自动生成参考文献引用及自动更新文献编号
- RAID概念-磁盘阵列
- Android HDMI输出设置流程
- 计算机如何卸载应用程序,如何卸载电脑程序,详细教您电脑怎么卸载软件程序...