laspy + open3d 实现.las点云可视化

python, laspy, open3d, 激光点云,laspy转open3d

https://blog.csdn.net/cxcjoker7894/article/details/135870984

open3d不能直接读取.las文件,可以使用laspy做中转,用laspy读出来点,着色,强度等等信息,写入open3d中,再用open3d实现可视化。
先上最后正确的代码:

import numpy as np
import laspy
import open3d as o3d

point_cloud_path = '2F.las'
las = laspy.read(point_cloud_path)
# 写入点
point_data = np.stack([las.x, las.y, las.z], axis=0).transpose((1, 0))
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(point_data)
# 写入着色
if las.red.max() >= 256: las.red >>= 8
if las.green.max() >= 256: las.green >>= 8
if las.blue.max() >= 256: las.blue >>= 8
colors = np.stack([las.red*256/65535, las.green*256/65535, las.blue*256/65535], axis=0).transpose((1, 0))
pcd.colors = o3d.utility.Vector3dVector(colors)

# 测试可视化
o3d.visualization.draw_geometries([pcd])

过程中要注意两个易踩的坑:
一个是取las点坐标时是小写的xyz,如果写成大写,会发现laspy取出的坐标偏大, X = (x - x_offset) / x_scale,而point_format中并未提供小写选项。
一个是着色rgb值位数,需要转换。

相关推荐

  1. laspy + open3d 实现.las

    2024-01-27 04:30:01       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-27 04:30:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-27 04:30:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-27 04:30:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-27 04:30:01       20 阅读

热门阅读

  1. vue的this指向问题

    2024-01-27 04:30:01       31 阅读
  2. 【css技巧】css实现边框渐变

    2024-01-27 04:30:01       44 阅读
  3. 张维迎《博弈与社会》笔记(1)序言

    2024-01-27 04:30:01       30 阅读
  4. 844.比较含退格的字符串(力扣LeetCode)

    2024-01-27 04:30:01       30 阅读
  5. 【MySQL事务】MySQL事务初识

    2024-01-27 04:30:01       35 阅读
  6. C# Queryable类

    2024-01-27 04:30:01       26 阅读
  7. vue创建组件和使用

    2024-01-27 04:30:01       33 阅读
  8. 纯c实现栈和队列 数据结构大全

    2024-01-27 04:30:01       35 阅读