我目前正在学习用于可视化点云数据的 open3d。我设法使用此处介绍的非阻塞可视化实时可视化从一系列 .pcd 文件(一个文件用于一个点云)中读取的一系列点云:非阻塞可视化
通过遵循文档,我能够更新“点云”类型的几何图形。这是我进行可视化的方式:
import open3d as o3d
import numpy as np
import time
geometry = o3d.geometry.PointCloud()
geometry.points = o3d.utility.Vector3dVector(pt_clouds[0])
o3d.utility.set_verbosity_level(o3d.utility.VerbosityLevel.Debug)
vis = o3d.visualization.Visualizer()
vis.create_window()
vis.add_geometry(geometry)
for pt_cloud in pt_clouds: #pt_clouds are the point cloud data from several .pcf files
geometry.points = o3d.utility.Vector3dVector(pt_cloud)
vis.update_geometry(geometry)
vis.poll_events()
vis.update_renderer()
time.sleep(1 / 20)
vis.destroy_window()
但是,除了点云之外,我还有一组由中心坐标 [cx, cy, cz] 给定的每个点云的边界框,围绕 z 轴“rot_z”的旋转和边界的 [长度、宽度、高度]盒子。我想找到一种方法来渲染边界框以及点云并在每一帧更新它们(对于每一帧,有一个点云+不同数量的边界框要渲染,最后一帧的旧渲染需要被清除和更新)。
有没有办法做到这一点?如果 open3d 无法做到这一点,那么在 python 中执行此操作的常用方法/库是什么?
任何建议将不胜感激,在此先感谢!