open3dml的机器学习03

open3dml的机器学习 03

第二章 激光点云Las数据处理与加载



前言

.las 文件中的点云数据通常包含了每个点的坐标以及可能的颜色信息。为了正确显示 .las 文件中的点云,我们需要读取和应用这些颜色信息,并调整点的大小以适合显示效果。


一、读取 .las 文件并应用颜色信息:

使用 Open3D-ML 可以方便地加载和预处理各种格式的 3D 数据,如点云数据、网格数据等。它提供了数据集类(例如 KITTI、SemanticKITTI 等)来帮助加载和处理这些数据集。

import laspy
import open3d as o3d
import numpy as np

def read_las_with_color(file_path):
    # 使用 laspy 读取 .las 文件
    las = laspy.read(file_path)
    # 提取 x, y, z 坐标
    points = np.vstack((las.x, las.y, las.z)).transpose()
    # 提取 RGB 颜色信息
    colors = np.vstack((las.red, las.green, las.blue)).transpose() / 255.0  # 将颜色值归一化到 [0, 1]
    
    # 创建 Open3D 点云对象,并设置点云颜色
    point_cloud = o3d.geometry.PointCloud()
    point_cloud.points = o3d.utility.Vector3dVector(points)
    point_cloud.colors = o3d.utility.Vector3dVector(colors)
    
    return point_cloud

def visualize_point_cloud(pcd):
    # 设置渲染窗口
    vis = o3d.visualization.Visualizer()
    vis.create_window()
    vis.add_geometry(pcd)
    
    # 设置渲染选项
    opt = vis.get_render_option()
    opt.point_size = 1.0  # 设置点的大小
    opt.show_coordinate_frame = True  # 显示坐标轴
    opt.background_color = np.asarray([0.0, 0.0, 0.0])  # 设置背景颜色为黑色
    
    # 运行渲染窗口
    vis.run()
    vis.destroy_window()

二、采样处理:

 # 下采样一半的点进行渲染
    point_cloud_downsampled = point_cloud.voxel_down_sample(voxel_size=0.05)  # 设置合适的下采样尺寸

三、渲染结果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值