python读取pcd文件_PCL读取PCD文件的数据
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文件的数据相关推荐
- C 怎么读取Cpp文件_从PCD文件写入和读取点云数据
(1)学习向PCD文件写入点云数据 建立工程文件ch2,然后新建write_pcd.cpp CMakeLists.txt两个文件 write_pcd.cpp : #include <iostre ...
- PCL——从PCD文件中读取点云数据
从PCD文件中读取点云数据 1. 示例代码 1. 示例代码 以下代码均参考PCL官方文档:https://pcl.readthedocs.io/projects/tutorials/en/master ...
- PCD Lesson3:PCD文件的读取
PCD文件的读取 #include <stdio.h>#include<boost/thread.hpp> #include<boost/timer.hpp> #i ...
- PCL—从PCD文件中读取点云数据(一)
1.从PCD文件中读取点云数据 #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_ty ...
- PCD文件的读取以及可视化
PCD文件的读取以及可视化 在开发激光雷达相应算法的时候,经常需要生成或者读取pcd点云文件,因此本文主要编写了一个简单的读取pcd点云文件的功能包,并且能够实现可视化. [源代码] #inclu ...
- 如何使用Python创建,读取,更新和搜索Excel文件
This article will show in detail how to work with Excel files and how to modify specific data with P ...
- Python fileinput模块:逐行读取多个文件
前面章节中,我们学会了使用 open() 和 read()(或者 readline().readlines() )组合,来读取单个文件中的数据.但在某些场景中,可能需要读取多个文件的数据,这种情况下, ...
- Python使用pandas读取两个或者多个excel文件(xlsx)并进行数据连接(join)合并两个或者多个excel的信息
Python使用pandas读取两个或者多个excel文件(xlsx)并进行数据连接(join)合并两个或者多个excel的信息 目录
- python中如何在写文件之前删除文件内容_Python:文件的读取、创建、追加、删除、清空...
一.用Python创建一个新文件,内容是从0到9的整数, 每个数字占一行: #python >>>f=open('f.txt','w') # r只读,w可写,a追加 >> ...
- python 删除文件-python 删除文件和读取文件
import os os.walk(path) path是指想要遍历的文件夹的路径 这个函数得到的结果是一个或多个tuple,个数取决于路径下是否有文件夹:如果没有文件夹的话,那么只有一个tuple, ...
最新文章
- Pyhton 内置 itertools 模块chain、accumulate、compress、drop、take等函数使用
- PAT 10-2 删除字符串中的子串
- caffe web demo 搭建
- Myeclipse的破解步骤
- linux怎么卸载yam,linux 基本命令 - osc_foipyam7的个人空间 - OSCHINA - 中文开源技术交流社区...
- nagios学习笔记(二)
- arcgis导入excel数据_ArcGIS批量导入数据
- Java 9和Project Jigsaw如何破坏您的代码
- 测试学生成绩的软件,《软件测试-学生成绩管理系统》.doc
- python 广告滚动,使用python客户端弹性搜索滚动
- Postman界面介绍及实例(转)
- MSDN最新的2007年6月的中文版本发布了
- H.264码流分析器,雷霄骅版本人修改版
- 运动目标检测之关键帧提取、二帧差法及三帧差法
- SQLServer中定义拼音检索函数,根据中文参数返回对应汉字的拼音首字母
- docker学习总结X - 碰到的问题
- 机器视觉打光方式相关问题汇总
- 华南理工大学函授计算机考试答案,函授大专考试试卷题型具体是怎样的
- python中bin函数如何使用?
- 迁移Hexo博客到Google渐进式Web应用(PWA)