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格式相关推荐

  1. PCL 1.8.1 在VS2015中配置 包含目录、库目录和附加依赖项

    PCL 1.8.1 在VS2015中配置 包含目录.库目录和附加依赖项 1. 包含目录 2. 库目录 3. 附加依赖项 如果想要永久配置,需要在属性管理器中进行. 1. 包含目录 C:\Program ...

  2. vtk体绘制代码报错的解决办法(代码在vtk7,8,9中都能运行),以及VTK数据集网站

    链接:vtk7.1.1官方文档 链接:官方示例代码 链接:VTK资源网站(需要什么资源搜索就行,官网示例中的数据集.资源基本都有) 体绘制代码运行不了,一直报错的解决方案 大家应该都看过VTK图形图像 ...

  3. ply格式转为obj,stl等格式

    ply格式转为obj,stl等格式 一般方法是使用meshlab或matlab等软件工具进行转化,需要配置环境,调试程序等一系列准备工作,工作量大,一般人只是使用一下,并不准备研究这些工具. 在这里推 ...

  4. PCL第三方库:Eigen, Flann , Qhull, VTK, Boost简介

    前言: PCL作为机器人软件的一个基础类库,融合了基础结构.算法和三维显示.其大量使用第三方库,使用了Boost.Eigen.Flann.VTK.Boost.CUdnn等. 第一预备役:Boost   ...

  5. PCL学习(3)——kdtree搜索(error C2079: “pcl::KdTreeFLANN::param_radius_)

    简介: 算法原理 1.建立kdtree 主要有两步操作:选择合适的分割维度,选择中值节点作为分割节点: 分割维度的选择遵循的原则是,选择范围最大的纬度,也即是方差最大的纬度作为分割维度: 分割节点的选 ...

  6. ActiViz(VTK的C#库)C#64位VTK如何在Visual Studio里创建RenderWindowControl控件

    Visual Studio17里只支持x86位控件拖拽,不支持x64.那怎样在64位的组件form窗口中放RenderWindowControl控件呢?下面我们就详细介绍一下在Visual Studi ...

  7. VTK读取dicom序列,并保存成vtk和obj格式的3D格式文件

    在vs中配置好vtk之后,新建项目,然后加入如下代码. #include "stdafx.h" #include <vtkAutoInit.h> VTK_MODULE_ ...

  8. PCL点云库必备知识点4——pointcloud2消息格式的转换

    1 sensor_msgs::PointCloud2ConstPtr与sensor_msgs::PointCloud2的转换 参考链接 sensor_msgs::PointCloud2ConstPtr ...

  9. Qt VTK软件开发问题学习记录

    1. 0x00000000000000处有未经处理的异样 程序运行时出现下面问题肯定是内存错误,但到底是数组越界(数组边界溢出),指针错误,链接库问题......就需要进一步调试(debug). 链接 ...

最新文章

  1. 大厂面试通关图鉴:骚话走一走,百万薪到手!
  2. php 扩展的so文件位置
  3. python主线程执行_python 并发执行之多线程
  4. Leetcode 153. 寻找旋转排序数组中的最小值 (每日一题 20211014)
  5. 【学术相关】11 个好用的科研工具推荐!工作效率提升 max!
  6. SpringBoot 迭代输出
  7. 不浮躁的社会是什么样的?
  8. C/C++实现删除字符串的首尾空格
  9. javascript中的'this'
  10. sql-labs超详细教程
  11. 【python文本分析】——基于股评文本的情绪分析
  12. SQLServer2019安装教程
  13. 在 VS Code 中开始使用 Python
  14. 查询当前数据库名、用户名、数据库服务器IP、端口、数据库版本信息。
  15. HCL实验-使用ACL进行SSH服务器的登录源限制的简单实验(NAT+SSH+ACL)
  16. python(进阶篇)——自动化操作Excel(xlrd和xlwt)
  17. word中自动生成参考文献引用及自动更新文献编号
  18. RAID概念-磁盘阵列
  19. Android HDMI输出设置流程
  20. 计算机如何卸载应用程序,如何卸载电脑程序,详细教您电脑怎么卸载软件程序...

热门文章

  1. mass Framework event模块 v8
  2. 研究项目: JBoss架构分析
  3. PCLint使用(一)
  4. 五一减肥狂掉肉饮食法
  5. Redis实现之数据库(三)
  6. 使用云服务器安装QEMU搭建嵌入式开发环境
  7. HTTP层 —— Session
  8. 关于target=标签
  9. javascript 对象详解
  10. 把磁盘崩溃了,总是进去维护模式,却删除不了fstab文件中的内容