pdal读取.las文件(将las数据读取成XYZRGB格式)//las转txt

这篇博客介绍了如何使用pdal库读取.las文件,并将其转换成XYZRGB格式的文本文件。内容包括pdal库的基本介绍和具体的操作步骤,通过C++代码实现las数据的读取和写入。
摘要由CSDN通过智能技术生成

学习笔记:pdal读取.las文件(将las数据读取成XYZRGB格式)//las转txt

本着对c++里一些库的学习态度,整理了一下在实际工程项目中写下的代码分享给用得到的人;有不对的地方希望指正,勿喷。

pdal可以读取.las数据中的详细信息;由于本人只用到点云的xyzrgb信息,故将.las直接转换成:

pcl::PointCloud<PointXYZRGB>

读取数据用到了pdal库,写入数据用到了pcl库!

一、pdal是什么?

PDAL是点云数据处理的库。这是一个C/C++开源库,用于点云数据的转换和处理。尽管该库中许多工具的重点和发展都起源于激光雷达点云数据的处理,但它也不限于激光雷达数据。一个简单的PDAL点云处理流程,由读文件、滤波模块和写点云模块组成。这里我们只用到点云的读取部分!

二、使用步骤

1.代码

我这里将读取las数据的功能打包成了一个函数;函数里面的代码是可以直接写在主函数里的。

#include <pdal/Options.hpp>
#include <pdal/io/LasHeader.hpp>
#include <pdal/io/LasReader.hpp>
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>

typedef pcl::PointXYZRGB PointT;

//Las2Pointxyzrgb
void ReadLas(pcl::PointCloud<PointT>::Ptr& cloud0, std::string filename) {
   
	pdal::Option las_opt("filename", filename); //参数1:"filename"(键)
	pdal::Options las_opts;
	las_opts.add(las_opt);
	pdal::LasReader las_reader;
	pdal::PointTable table;
	las_reader.setOptions(las_opts);
	las_reader.prepare(table);
	pdal::PointViewSet point_view_set = las_reader.execute(table);
	pdal::PointViewPtr point_view = *point_view_set.begin();
	pdal::LasHeader las_header = las_reader.header();

	//头文件信息
	unsigned int PointCount = las_header.pointCount();
	double scale_x = las_header.scaleX();
	double scale_y = las_header.scaleY();
	double scale_z = las_header.scaleZ();
	double offset_x = las_header.
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值