1.pcd文件——rabbit.pcd

新建项目pcl

rabbit.pcd 和pcl.cpp在同一目录下

2.读取文件

(1)显示数据

#include#include#include

int main(int argc, char**argv) {

//创建了一个名为cloud的指针,储存XYZ类型的点云数据

pcl::PointCloud<:pointxyz>::Ptr cloud(new pcl::PointCloud<:pointxyz>);//

//*打开点云文件

if (pcl::io::loadPCDFile<:pointxyz>("rabbit.pcd", *cloud) == -1) {

PCL_ERROR("Couldn't read file rabbit.pcd\n");return(-1);

}

std::cout<< "Loaded:" << cloud->width*cloud->height<points.size(); ++i) {

std::cout<< " " << cloud->points[i].x << " " << cloud->points[i].y << " " << cloud->points[i].z << " " <<:endl>

}

system("pause");return 0;

}

文件里的数据就一次显示出来了

说明:

PointCloud是PCL中的一个基类,pcl::PointCloud<:pointxyz>::Ptr是一个Boost共享指针

PointCloud中的数据域

width(int),如果是无组织,无结构的点云数据,表示点云的个数;如果是有结构的点云数据,表示点云数据集一行的点数。

height(int),如果是无结构的点云数据,height=1;如果是有结构的点云数据,height表示点云总行数。

points(std::vector)存储了数据类型为PointT的一个动态数组。

PointXYZ 是最常见的一个点数据类型,它只包含三维X,Y,Z坐标信息

X:points[i].x

size_t 整型,保存一个整数,记录一个大小(size)

points.size() 表示点云数据大小

(2)数据可视化

#include#include#include#include

int main(int argc, char**argv) {

pcl::PointCloud<:pointxyz>::Ptr cloud(new pcl::PointCloud<:pointxyz>);//

//*打开点云文件

if (pcl::io::loadPCDFile<:pointxyz>("rabbit.pcd", *cloud) == -1) {

PCL_ERROR("Couldn't read file rabbit.pcd\n");return(-1);

}

std::cout<< cloud->points.size() <<:endl>

pcl::visualization::CloudViewer viewer("cloud viewer");

viewer.showCloud(cloud);while (!viewer.wasStopped()) {

}

system("pause");return 0;

}

运行结果

转一下滚轮

修改背景色

#include#include#include#include

void viewerOneOff(pcl::visualization::PCLVisualizer&viewer) {

viewer.setBackgroundColor(1.0f, 0.5f, 1.0f);

}int main(int argc, char**argv) {

pcl::PointCloud<:pointxyz>::Ptr cloud(new pcl::PointCloud<:pointxyz>);//*打开点云文件

if (pcl::io::loadPCDFile<:pointxyz>("rabbit.pcd", *cloud) == -1) {

PCL_ERROR("Couldn't read file rabbit.pcd\n");return(-1);

}

std::cout<< cloud->points.size() <<:endl>

pcl::visualization::CloudViewer viewer("cloud viewer");

viewer.showCloud(cloud);

viewer.runOnVisualizationThreadOnce(viewerOneOff);

system("pause");return 0;

}

输出文字

#include#include#include#include

intuser_data;void viewerOneOff(pcl::visualization::PCLVisualizer&viewer) {

viewer.setBackgroundColor(1.0f, 0.5f, 1.0f);

}voidviewerPsycho(pcl::visualization::PCLVisualizer&viewer)

{static unsigned count = 0;

std::stringstream ss;

ss<< "Once per viewer loop:" << count++;

viewer.removeShape("text", 0);

viewer.addText(ss.str(),20, 100, "text", 0);//this is to set the coordination of text "Once per viewer loop:"

user_data++;

}int main(int argc, char**argv) {

pcl::PointCloud<:pointxyz>::Ptr cloud(new pcl::PointCloud<:pointxyz>);//*打开点云文件

if (pcl::io::loadPCDFile<:pointxyz>("rabbit.pcd", *cloud) == -1) {

PCL_ERROR("Couldn't read file rabbit.pcd\n");return(-1);

}

std::cout<< cloud->points.size() <<:endl>

pcl::visualization::CloudViewer viewer("cloud viewer");

viewer.showCloud(cloud);

viewer.runOnVisualizationThreadOnce(viewerOneOff);

viewer.runOnVisualizationThread(viewerPsycho);

system("pause");return 0;

}

python读取pcd文件_PCL读取PCD文件的数据相关推荐

  1. C 怎么读取Cpp文件_从PCD文件写入和读取点云数据

    (1)学习向PCD文件写入点云数据 建立工程文件ch2,然后新建write_pcd.cpp CMakeLists.txt两个文件 write_pcd.cpp : #include <iostre ...

  2. PCL——从PCD文件中读取点云数据

    从PCD文件中读取点云数据 1. 示例代码 1. 示例代码 以下代码均参考PCL官方文档:https://pcl.readthedocs.io/projects/tutorials/en/master ...

  3. PCD Lesson3:PCD文件的读取

    PCD文件的读取 #include <stdio.h>#include<boost/thread.hpp> #include<boost/timer.hpp> #i ...

  4. PCL—从PCD文件中读取点云数据(一)

    1.从PCD文件中读取点云数据 #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_ty ...

  5. PCD文件的读取以及可视化

    PCD文件的读取以及可视化   在开发激光雷达相应算法的时候,经常需要生成或者读取pcd点云文件,因此本文主要编写了一个简单的读取pcd点云文件的功能包,并且能够实现可视化. [源代码] #inclu ...

  6. 如何使用Python创建,读取,更新和搜索Excel文件

    This article will show in detail how to work with Excel files and how to modify specific data with P ...

  7. Python fileinput模块:逐行读取多个文件

    前面章节中,我们学会了使用 open() 和 read()(或者 readline().readlines() )组合,来读取单个文件中的数据.但在某些场景中,可能需要读取多个文件的数据,这种情况下, ...

  8. Python使用pandas读取两个或者多个excel文件(xlsx)并进行数据连接(join)合并两个或者多个excel的信息

    Python使用pandas读取两个或者多个excel文件(xlsx)并进行数据连接(join)合并两个或者多个excel的信息 目录

  9. python中如何在写文件之前删除文件内容_Python:文件的读取、创建、追加、删除、清空...

    一.用Python创建一个新文件,内容是从0到9的整数, 每个数字占一行: #python >>>f=open('f.txt','w') # r只读,w可写,a追加 >> ...

  10. python 删除文件-python 删除文件和读取文件

    import os os.walk(path) path是指想要遍历的文件夹的路径 这个函数得到的结果是一个或多个tuple,个数取决于路径下是否有文件夹:如果没有文件夹的话,那么只有一个tuple, ...

最新文章

  1. Pyhton 内置 itertools 模块chain、accumulate、compress、drop、take等函数使用
  2. PAT 10-2 删除字符串中的子串
  3. caffe web demo 搭建
  4. Myeclipse的破解步骤
  5. linux怎么卸载yam,linux 基本命令 - osc_foipyam7的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. nagios学习笔记(二)
  7. arcgis导入excel数据_ArcGIS批量导入数据
  8. Java 9和Project Jigsaw如何破坏您的代码
  9. 测试学生成绩的软件,《软件测试-学生成绩管理系统》.doc
  10. python 广告滚动,使用python客户端弹性搜索滚动
  11. Postman界面介绍及实例(转)
  12. MSDN最新的2007年6月的中文版本发布了
  13. H.264码流分析器,雷霄骅版本人修改版
  14. 运动目标检测之关键帧提取、二帧差法及三帧差法
  15. SQLServer中定义拼音检索函数,根据中文参数返回对应汉字的拼音首字母
  16. docker学习总结X - 碰到的问题
  17. 机器视觉打光方式相关问题汇总
  18. 华南理工大学函授计算机考试答案,函授大专考试试卷题型具体是怎样的
  19. python中bin函数如何使用?
  20. 迁移Hexo博客到Google渐进式Web应用(PWA)

热门文章

  1. python实现ip地址查询
  2. Windows XP的图标结构
  3. bzoj #1854 游戏(二分图匹配)
  4. GEE:LandTrendr时间序列曲线拟合
  5. 计算机图形表示的原理
  6. linux无线网络已连接,上不了网,无线网络连接上但上不了网的原因和解决方法
  7. 博弈中的神奇策略:A tit-for-tat strategy
  8. 瑞云Renderbus渲染农场GPU渲染集群正式上线!
  9. HIVE厂牌艺人_北京音乐节-北京音乐节全攻略 - 马蜂窝
  10. 计算机网络教程第五版|微课版 - 第一章 概述 - 习题