python对点云可视化设置颜色

       

1、背景介绍

      点云分类/分割时,常需要对分类结果进行可视化,其中给点云赋予不同颜色是一种最直接方法。介绍基于python中matplotlib进行点云颜色渲染显示。

2、点云颜色渲染

2.1 有限种颜色渲染

      matplotlib在点云颜色渲染时,使用表示颜色的关键词来表示,如scatter为常见可视化函数,其中表示颜色的关键词有限,如下所示:

  • ‘red’:红色
  • ‘blue’:蓝色
  • ‘green’:绿色
  • ‘yellow’:黄色
  • ‘purple’:紫色
  • ‘orange’:橙色
  • ‘cyan’:青色
  • ‘magenta’:品红色
  • ‘pink’:粉红色
  • ‘black’:黑色
  • ‘white’:白色
  • ‘gray’ 或 ‘grey’:灰色
  • ‘brown’:棕色
scatter(xarr, yarr, c='brown', marker='.')

  2.1.1 三维空间有限颜色渲染

       需要说明的是,使用   ax.scatter(xarr, yarr, c='brown', marker='.')命令进行点云可视化,其可以同时可视化二维与三维。   可视化结果与代码如下:

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体
plt.rcParams['axes.unicode_minus'] = False  # 正确显示负号

with open('E:\\工.txt', 'r') as file:
    # 初始化一个列表来存储所
### Python 点云可视化库及示例代码 #### 使用 VTK 库进行点云可视化 VTK 是一个强大的开源图形处理工具包,适用于多种数据类型的可视化。对于点云数据而言,可以通过创建 `vtkPoints` 对象并将其添加到 `vtkPolyData` 中来完成基本的点云显示。 ```python import vtk def create_vtk_points(points): """ 将 numpy 数组转换成 VTK points """ vtkPts = vtk.vtkPoints() for pt in points: vtkPts.InsertNextPoint(pt[:]) polydata = vtk.vtkPolyData() polydata.SetPoints(vtkPts) vertexGlyphFilter = vtk.vtkVertexGlyphFilter() vertexGlyphFilter.SetInputData(polydata) vertexGlyphFilter.Update() return vertexGlyphFilter.GetOutput() # 创建渲染窗口和交互器 renderer = vtk.vtkRenderer() renderWindow = vtk.vtkRenderWindow() renderWindow.AddRenderer(renderer) interactor = vtk.vtkRenderWindowInteractor() interactor.SetRenderWindow(renderWindow) # 假设有一个名为 'points' 的 NumPy array 存储着三维坐标 point_data = [[0, 0, 0], [1, 0, 0], [0, 1, 0]] polydata = create_vtk_points(point_data) mapper = vtk.vtkPolyDataMapper() if vtk.VTK_MAJOR_VERSION <= 5: mapper.SetInputConnection(polydata.GetProducerPort()) else: mapper.SetInputData(polydata) actor = vtk.vtkActor() actor.SetMapper(mapper) renderer.AddActor(actor) renderer.SetBackground(0.1, 0.2, 0.4) renderWindow.Render() interactor.Start()[^2] ``` 这段代码展示了如何利用 VTK 来加载简单的点集,并通过设置背景颜色等方式增强最终效果。 #### PCL-Py 进行点云可视化 另一个流行的选项是 pclpy,这是 Point Cloud Library(PCL) 的 Python 接口。PCL 提供了大量的算法用于点云处理,而 pclpy 则让这些功能可以直接被 Python 调用。 安装 pclpy 后,可以按照如下方式读取文件并展示: ```python from pclpy import pcl import numpy as np cloud = pcl.PointCloud.PointXYZRGBA() reader = pcl.io.PCDReader() reader.read('path_to_pcd_file.pcd', cloud) viewer = pcl.visualization.CloudViewer("Simple Viewer") viewer.showCloud(cloud) while not viewer.wasStopped(): pass[^3] ``` 此段脚本会打开指定路径下的 .pcd 文件并将其中的内容呈现出来;注意这里的循环是为了保持应用程序运行直到用户关闭视窗为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点云实验室lab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值