Python las 读取可以参考之前的博客,用laspy 或者 pylas

今天主要解决Python、C++ 的las转pcd文件

1. Python .las转.pcd

# -*- coding: utf-8 -*-
# 读取las文件 并保留为 XYZI格式的pcd文件import pcl  # 调用pcl保留pcd文件
from laspy.file import File  # las文件读取
import numpy as np  # np数组处理
import time  # 计算耗时# las读取转为 pcd的cloud形式,只保留 XYZI
def getCloud():file = r"D:/pcd/1001140020191217.las"f = File(file, mode='r')inFile = np.vstack((f.x, f.y, f.z, f.intensity)).transpose()cloud = pcl.PointCloud_PointXYZI()cloud.from_array(np.array(inFile, dtype=np.float32))f.close()return clouddef main():end1 = time.time()cloud = getCloud()pcl.save(cloud, r"D:/pcd/1001140020191217_las2pcd.pcd")end2 = time.time()print("las2pcd 耗时:%.2f秒" % (end2 - end1))print('-------endl----------')if __name__ == '__main__':main()

2. C++ .las转.pcd

用到liblas库,需要安装好PCL1.8.1

start las2pcd.exe D:/pcd/1001140020191217.las D:/pcd/1001140020191217_las2pcd.pcd
#include <iostream>
#include <cstdlib>
#include <liblas/liblas.hpp>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>using namespace std;int main (int argc, char** argv)
{std::ifstream ifs(argv[1], std::ios::in | std::ios::binary); // 打开las文件liblas::ReaderFactory f;liblas::Reader reader = f.CreateWithStream(ifs); // 读取las文件unsigned long int nbPoints=reader.GetHeader().GetPointRecordsCount();//获取las数据点的个数pcl::PointCloud<pcl::PointXYZI> cloud;cloud.width    = nbPoints;  //保证与las数据点的个数一致    cloud.height   = 1;            cloud.is_dense = true;cloud.points.resize (cloud.width * cloud.height);int i=0;               /* uint16_t r1, g1, b1; int r2, g2, b2;         uint32_t rgb;       */  while(reader.ReadNextPoint()) {// 获取las数据的x,y,z信息cloud.points[i].x = (reader.GetPoint().GetX());cloud.points[i].y = (reader.GetPoint().GetY());cloud.points[i].z = (reader.GetPoint().GetZ());cloud.points[i].intensity = (reader.GetPoint().GetIntensity());//获取las数据的r,g,b信息/*r1 = (reader.GetPoint().GetColor().GetRed());g1 = (reader.GetPoint().GetColor().GetGreen());b1 = (reader.GetPoint().GetColor().GetBlue()); r2 = ceil(((float)r1/65536)*(float)256);g2 = ceil(((float)g1/65536)*(float)256);b2 = ceil(((float)b1/65536)*(float)256);rgb = ((int)r2) << 16 | ((int)g2) << 8 | ((int)b2);cloud.points[i].rgb = *reinterpret_cast<float*>(&rgb);*/i++; }pcl::io::savePCDFileASCII (argv[2], cloud);//存储为pcd类型文件return (0);
}

Python,C++中点云 .las转.pcd相关推荐

  1. python点云快速配准_分享一个V-SLAM中点云配准算法改进的方法

    近年来,随着自主导航的广泛应用,视觉同时定位与地图构建(Visual simultaneous localization and mapping, V-SLAM)通过自身携带的视觉传感器对周围环境进行 ...

  2. 点云Las文件是什么?

    点云Las文件是什么? 1. LIDAR数据 2. LAS点云规格 3. LAS Header头文件 4. LAS Header版本与LAS点格式 5. 点云Header与点格式对应关系 6. 示例- ...

  3. 点云旋转平移(三)—python open3d点云旋转

    点云旋转平移介绍,请参考上一节:点云旋转平移(一)-基础知识介绍_Coding的叶子的博客-CSDN博客. 本节所使用的示例pcd点云文件请参考:pcd格式点云样例文件-深度学习文档类资源-CSDN下 ...

  4. 点云旋转平移(二)—python open3d点云平移

    点云旋转平移介绍,请参考上一节:点云旋转平移(一)-基础知识介绍_Coding的叶子的博客-CSDN博客. 本节所使用的示例pcd点云文件请参考:pcd格式点云样例文件-深度学习文档类资源-CSDN下 ...

  5. 用pcl读ply文件_一分钟详解PCL中点云配准技术

    原文首发于微信公众号「3D视觉工坊」:一分钟详解PCL中点云配准技术 本文是对前两篇文章:点云配准(一 两两配准)以及3D点云(二 多福点云配准)的补充,希望可以在一定程度上帮助大家对点云配准理解地更 ...

  6. PCL中点云关键点提取

    PCL中点云关键点提取 1 关键点概念及相关算法 1.1 NARF关键点 1.2 Harris关键点 1.3 PCL中keypoints模块及类介绍 2 关键点入门级实例解析 2.1 如何从深度图像中 ...

  7. PCL中点云特征描述与提取精通级实例解析

    PCL中点云特征描述与提取精通级实例解析 1 3D对象识别的假设验证 2 隐式形状模型方法 2.1 隐式形状模型识别方法概述 2.2 实例解析 1 3D对象识别的假设验证   本教程将学习在高噪声和严 ...

  8. python 把txt文件转化为pcd文件并用open3D可视化

    python 把txt文件转化为pcd文件并用open3D进行可视化 最近在弄3D点云的一些东西,遇到一个问题:很多数据集给的点云数据都是txt格式的,但是在模型上用到的数据集基本是pcd格式!找了很 ...

  9. KITTI数据集的点云格式转PCD格式

    参考文章:https://blog.csdn.net/xinguihu/article/details/78922005 KITTI数据集应该不用多做介绍了,基本上做自动驾驶的都知道这个东西.最近本人 ...

最新文章

  1. 什么是Attention机制以及Pytorch如何使用
  2. 51nod 1836:战忽局的手段(期望)
  3. JSP+JavaBean+Servlet工作原理实例…
  4. CV:人工智能之计算机视觉方向的简介(CV发展史+常用数据集+CV职位)、传统方法对比CNN类算法、计算机视觉十大应用(知识导图+经典案例)之详细攻略
  5. nvidia-docker2 在 Kubernetes 上实践
  6. sql server 查看表、视图、触发器、存储过程等组成sql查询语句
  7. KETTLE集群搭建
  8. 自己动手打造一台自动驾驶车(持续更新)
  9. 马化腾教你做产品:改掉这七点,让产品自己说话
  10. 微博跳转淘宝,微博发布宝贝/优惠券/淘客等链接点击后直接跳转淘宝打开
  11. citus介绍和centos7安装部署和集群搭建
  12. AMD RX 7700XT、7800XT和7600显卡参数 RX 7700XT、7800XT和7600相当于什么水平
  13. 【oracle11g,11】redo日志文件2 :日志恢复 (重点)
  14. Unity3D RenderTexture实现3D立绘
  15. DOCK6.9学习(VII)
  16. 微信公众号如何运营才能吸引用户的关注?
  17. 无代码开发平台数据ID入门教程
  18. 量子计算机和光计算,杂谈|是量子计算,还是光学实验?
  19. 2007上半年微软武汉.NET俱乐部活动预告。
  20. 嘉定区专利产业化项目认定条件及流程解读

热门文章

  1. Cocos 发射和监听事件 事件派送(TypeScript)
  2. 员工信息管理系统java6_职工信息管理系统java源代码【可修改】.doc
  3. Android Read-only file system
  4. 图片的略小图图片不显示的处理方法
  5. linux 判断某个命令是否安装
  6. 智能开发框架 JEECG 作者张代浩专访
  7. MySQL 学习笔记(7)—— 游标
  8. ueeditor 百度编译器使用onchange效果
  9. Android程序员眼中世界上最遥远的距离
  10. 用java实现给图片增加图片水印或者文字水印(也支持视频图像帧添加水印)