如何在vtk中以不同的颜色显示点云?

2023-11-24

我有一个点云,我想在 vtk 中可视化。我想根据某些条件看到它们具有不同的颜色。我正在使用Python。

关于如何做到这一点有什么建议吗?

多谢


下面是一个根据 z 轴值设置点颜色的示例。

import vtk
from numpy import random

class VtkPointCloud:

    def __init__(self, zMin=-10.0, zMax=10.0, maxNumPoints=1e6):
        self.maxNumPoints = maxNumPoints
        self.vtkPolyData = vtk.vtkPolyData()
        self.clearPoints()
        mapper = vtk.vtkPolyDataMapper()
        mapper.SetInputData(self.vtkPolyData)
        mapper.SetColorModeToDefault()
        mapper.SetScalarRange(zMin, zMax)
        mapper.SetScalarVisibility(1)
        self.vtkActor = vtk.vtkActor()
        self.vtkActor.SetMapper(mapper)

    def addPoint(self, point):
        if self.vtkPoints.GetNumberOfPoints() < self.maxNumPoints:
            pointId = self.vtkPoints.InsertNextPoint(point[:])
            self.vtkDepth.InsertNextValue(point[2])
            self.vtkCells.InsertNextCell(1)
            self.vtkCells.InsertCellPoint(pointId)
        else:
            r = random.randint(0, self.maxNumPoints)
            self.vtkPoints.SetPoint(r, point[:])
        self.vtkCells.Modified()
        self.vtkPoints.Modified()
        self.vtkDepth.Modified()

    def clearPoints(self):
        self.vtkPoints = vtk.vtkPoints()
        self.vtkCells = vtk.vtkCellArray()
        self.vtkDepth = vtk.vtkDoubleArray()
        self.vtkDepth.SetName('DepthArray')
        self.vtkPolyData.SetPoints(self.vtkPoints)
        self.vtkPolyData.SetVerts(self.vtkCells)
        self.vtkPolyData.GetPointData().SetScalars(self.vtkDepth)
        self.vtkPolyData.GetPointData().SetActiveScalars('DepthArray')

pointCloud = VtkPointCloud()
for k in xrange(1000):
    point = 20*(random.rand(3)-0.5)
    pointCloud.addPoint(point)
pointCloud.addPoint([0,0,0])
pointCloud.addPoint([0,0,0])
pointCloud.addPoint([0,0,0])
pointCloud.addPoint([0,0,0])

# Renderer
renderer = vtk.vtkRenderer()
renderer.AddActor(pointCloud.vtkActor)
renderer.SetBackground(.2, .3, .4)
renderer.ResetCamera()

# Render Window
renderWindow = vtk.vtkRenderWindow()
renderWindow.AddRenderer(renderer)

# Interactor
renderWindowInteractor = vtk.vtkRenderWindowInteractor()
renderWindowInteractor.SetRenderWindow(renderWindow)

# Begin Interaction
renderWindow.Render()
renderWindowInteractor.Start()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在vtk中以不同的颜色显示点云? 的相关文章

随机推荐

  • strtotime 日期奇怪的结果

    给定以下字符串日期 Fri Sep 02 2011 21 00 00 GMT 0100 GMT Daylight Time 在 php 中 如果我在上面执行 strtotime 然后将其转换回字符串日期 似乎会增加一个小时 echo str
  • C# - 将数字附加到正在保存的文件中

    我已经创建了一个屏幕截图程序 一切运行良好 唯一的问题是 我不知道如何才能做到这一点 以便屏幕截图以附加数字的形式保存 例如 屏幕截图 1 屏幕截图 2 屏幕截图 3 屏幕截图 4 等 显然这可以应用于正在保存的其他文件 有任何想法吗 谢谢
  • Oracle存储过程中字符串缓冲区太小错误

    我在 Oracle 11g 存储过程中遇到错误 错误是 ORA 06502 PL SQL numeric or value error character string buffer too small 它发生在第 31 行 该行包含out
  • Python Pandas 并排绘制两个 BARH

    I am trying to make a plot that is similar like this 左侧图表 带图例的图 源自df 2 右侧图表源自df 1 但是 我无法使两个图并排共享 y 轴 这是我目前的绘图方式 df 1 tar
  • 数学“pow”函数 gcc 的 SSE 向量化

    我试图对包含数学库中 pow 函数的使用的循环进行矢量化 我知道英特尔编译器支持对 sse 指令使用 pow 但我似乎无法让它与 gcc 一起运行 我认为 这是我正在处理的情况 int main int i 0 float a 256 b
  • 使用 XmlSerializer 反序列化 XML 时保留仅包含空格的元素内容

    我有课InputConfig其中包含一个List
  • 在系统调用期间捕获/阻止 SIGINT

    我编写了一个网络爬虫 我希望能够通过键盘停止它 我不希望程序在我中断它时死掉 它需要首先将数据刷新到磁盘 我也不想抓KeyboardInterruptedException 因为持久数据可能处于不一致的状态 我当前的解决方案是定义一个信号处
  • 通过电子邮件发送 Gitlab-CI 工件

    我们的 Gitlab 管道生成一些性能图表 我希望通过电子邮件将其发送给每个团队成员 到目前为止 它们被标记为工件 因此 Gitlab 保留它们 Gitlab 有什么办法可以实现这一点吗 或者我应该在工作脚本中执行此操作 目前无法从 git
  • Linux中这个$PATH是什么以及如何修改

    我对 Linux 中的 PATH 有几个问题 我知道它告诉 shell 在哪些目录中搜索可执行文件 所以 环境变量是什么意思 如何改变它的路径 是否建议更改 如果我改变它会有什么后果 让你的路径成为当前路径 PATH变量类型为 echo P
  • 为什么 numpy.random 和 multiprocessing 不能很好地发挥作用? [复制]

    这个问题在这里已经有答案了 我有一个随机游走函数 它使用numpy random执行随机步骤 功能walk本身就可以正常工作 同时 它在大多数情况下按预期工作 但是与multiprocessing 它失败 为什么multiprocessin
  • 如何在 SAPUI5 XML 视图中使用 if-else 条件?

    如何在 SAPUI5 的 XML 视图中实现 if else 条件 该条件使用来自JSONModel 到目前为止我有一个控制器 sap ui define sap ui core mvc Controller sap ui model js
  • 之前有效的 Microsoft Graph 请求出现 InefficientFilter 错误

    向 MS Graph 发出以下请求以检索按到期日期排序的标记消息 https graph microsoft com beta me messages filter flag flagStatus 20eq 20 27flagged 27
  • 串行数据的二进制通信协议解析器设计

    我正在重新审视字节流 串行数据 一次接收 1 个字节 的通信协议解析器设计 数据包结构 无法更改 为 Start Delimiter 1 byte Message ID 1 byte Length 1 byte Payload n byte
  • 在 Mac OS X 上测试 IE6

    我希望能够在 Mac OS X 上全面测试我的网页的兼容性 我已经安装了 Parallels Desktop 它工作正常 但它使用大量资源 所以我希望能够测试 OS X 内的所有内容 事实上 我正在寻找适用于 Mac 的 Explorer
  • 有条件地在 Android 清单文件中包含元数据

    有没有办法有条件地包含meta dataAndroid 清单文件中的元素基于 Gradle 中设置的值 我能够执行以下操作 使用resValue to set
  • 如何将变量从 Python 传递到 VBA Sub

    我试图从我的 Python 代码调用 VBA 子程序 将指定文件夹中的所有 excel 文件从 xls 转换为 xlsm 格式 当我不在 VBA 中使用变量时 我可以使用以下代码 并且效果很好 Python代码 import os impo
  • OSX 上的 Mono:找不到 gtksharpglue-2.dll

    我正在尝试在 C 中完成我的第一步 并希望构建一个空的 GTK 窗口作为我的第一个任务 通过macports我安装了以下软件包 电子邮件受保护 电子邮件受保护 电子邮件受保护 我还使用 Mono 主页上的 MonoDevelop I add
  • “CSS 256 类覆盖一个 ID”背后的规则是什么?

    我最近也遇到过这种情况 但找不到 为什么 谁能解释一下吗 请参阅下面的示例 http codepen io chriscoyier pen lzjqh 发生这种情况是由于浏览器限制 而不是规范或浏览器实现方式中的错误 The spec sa
  • 单击标签时 jQuery Click 会触发两次

    我正在使用 jQuery 创建自定义单选按钮 但遇到了问题 当单击与无线电关联的标签时 单击事件会触发两次 如果我仅单击无线电本身 它工作正常 实际上 我单击的不是无线电 而是包装整个输入和标签的 div 这是代码 HTML div div
  • 如何在vtk中以不同的颜色显示点云?

    我有一个点云 我想在 vtk 中可视化 我想根据某些条件看到它们具有不同的颜色 我正在使用Python 关于如何做到这一点有什么建议吗 多谢 下面是一个根据 z 轴值设置点颜色的示例 import vtk from numpy import