Python,C++中点云 .las转.pcd
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相关推荐
- python点云快速配准_分享一个V-SLAM中点云配准算法改进的方法
近年来,随着自主导航的广泛应用,视觉同时定位与地图构建(Visual simultaneous localization and mapping, V-SLAM)通过自身携带的视觉传感器对周围环境进行 ...
- 点云Las文件是什么?
点云Las文件是什么? 1. LIDAR数据 2. LAS点云规格 3. LAS Header头文件 4. LAS Header版本与LAS点格式 5. 点云Header与点格式对应关系 6. 示例- ...
- 点云旋转平移(三)—python open3d点云旋转
点云旋转平移介绍,请参考上一节:点云旋转平移(一)-基础知识介绍_Coding的叶子的博客-CSDN博客. 本节所使用的示例pcd点云文件请参考:pcd格式点云样例文件-深度学习文档类资源-CSDN下 ...
- 点云旋转平移(二)—python open3d点云平移
点云旋转平移介绍,请参考上一节:点云旋转平移(一)-基础知识介绍_Coding的叶子的博客-CSDN博客. 本节所使用的示例pcd点云文件请参考:pcd格式点云样例文件-深度学习文档类资源-CSDN下 ...
- 用pcl读ply文件_一分钟详解PCL中点云配准技术
原文首发于微信公众号「3D视觉工坊」:一分钟详解PCL中点云配准技术 本文是对前两篇文章:点云配准(一 两两配准)以及3D点云(二 多福点云配准)的补充,希望可以在一定程度上帮助大家对点云配准理解地更 ...
- PCL中点云关键点提取
PCL中点云关键点提取 1 关键点概念及相关算法 1.1 NARF关键点 1.2 Harris关键点 1.3 PCL中keypoints模块及类介绍 2 关键点入门级实例解析 2.1 如何从深度图像中 ...
- PCL中点云特征描述与提取精通级实例解析
PCL中点云特征描述与提取精通级实例解析 1 3D对象识别的假设验证 2 隐式形状模型方法 2.1 隐式形状模型识别方法概述 2.2 实例解析 1 3D对象识别的假设验证 本教程将学习在高噪声和严 ...
- python 把txt文件转化为pcd文件并用open3D可视化
python 把txt文件转化为pcd文件并用open3D进行可视化 最近在弄3D点云的一些东西,遇到一个问题:很多数据集给的点云数据都是txt格式的,但是在模型上用到的数据集基本是pcd格式!找了很 ...
- KITTI数据集的点云格式转PCD格式
参考文章:https://blog.csdn.net/xinguihu/article/details/78922005 KITTI数据集应该不用多做介绍了,基本上做自动驾驶的都知道这个东西.最近本人 ...
最新文章
- 什么是Attention机制以及Pytorch如何使用
- 51nod 1836:战忽局的手段(期望)
- JSP+JavaBean+Servlet工作原理实例…
- CV:人工智能之计算机视觉方向的简介(CV发展史+常用数据集+CV职位)、传统方法对比CNN类算法、计算机视觉十大应用(知识导图+经典案例)之详细攻略
- nvidia-docker2 在 Kubernetes 上实践
- sql server 查看表、视图、触发器、存储过程等组成sql查询语句
- KETTLE集群搭建
- 自己动手打造一台自动驾驶车(持续更新)
- 马化腾教你做产品:改掉这七点,让产品自己说话
- 微博跳转淘宝,微博发布宝贝/优惠券/淘客等链接点击后直接跳转淘宝打开
- citus介绍和centos7安装部署和集群搭建
- AMD RX 7700XT、7800XT和7600显卡参数 RX 7700XT、7800XT和7600相当于什么水平
- 【oracle11g,11】redo日志文件2 :日志恢复 (重点)
- Unity3D RenderTexture实现3D立绘
- DOCK6.9学习(VII)
- 微信公众号如何运营才能吸引用户的关注?
- 无代码开发平台数据ID入门教程
- 量子计算机和光计算,杂谈|是量子计算,还是光学实验?
- 2007上半年微软武汉.NET俱乐部活动预告。
- 嘉定区专利产业化项目认定条件及流程解读