嗨,我编写了以下代码用于点云的实时可视化。 但是似乎在窗口显示后我无法使用鼠标旋转可视化器中的视图。 可以使用以下代码复制它。 我正在使用open3d 0.4。 有人可以帮忙吗? 谢谢。
import open3d
import numpy as np
import time
vis = open3d.Visualizer()
vis.create_window("3D Map")
pcd = open3d.PointCloud()
pts = np.mgrid[1: 6: complex(100),
2: 9: complex(100),
3: 6: complex(100)].reshape(3, -1).T
a = 1
start = time.time()
coord = open3d.create_mesh_coordinate_frame(1, [0, 0, 0])
coord_x = 0
vis.add_geometry(pcd)
while True:
start_time = time.time()
pcd.clear()
coord.clear()
pts[:, 0] = pts[:, 0] + 0.1
pcd.points = open3d.Vector3dVector(pts)
coord_x += 0.2
coord = open3d.create_mesh_coordinate_frame(1, [coord_x, 0, 0])
vis.add_geometry(coord)
vis.update_geometry()
vis.poll_events()
vis.update_renderer()
if time.time() - start > 30:
break
end_time = time.time()
process_time = end_time - start_time
print("Updating FPS = {0}".format(1.0 / process_time))
print('Processing time:', process_time)
vis.destroy_window()
嗨@taochenshh。 问题来自while循环中的vis.add_geometry(coord)
。 添加新的几何图形后,Visualizer会自动重置视点。 结果,您会感觉鼠标控件不起作用。
解决此问题的关键思想是只使用一次vis.add_geometry(coord)
。 例如,
#########################################
# original code written by taochenshh
#########################################
while True:
:
coord = open3d.create_mesh_coordinate_frame(1, [coord_x, 0, 0])
vis.add_geometry(coord)
:
这样尝试
###############################
# suggested code
###############################
vis.add_geometry(coord)
while True:
:
temp = open3d.create_mesh_coordinate_frame(1, [coord_x, 0, 0])
coord.vertices = temp.vertices
coord.triangles = temp.triangles
:
通过此更改,我可以改变观点。
谢谢。
@syncle如何在不
我正在处理汽车激光雷达的点云,当我朝车窗外驶去时,点云消失了,走出了窗框。
最有用的评论
嗨@taochenshh。 问题来自while循环中的
vis.add_geometry(coord)
。 添加新的几何图形后,Visualizer会自动重置视点。 结果,您会感觉鼠标控件不起作用。解决此问题的关键思想是只使用一次
vis.add_geometry(coord)
。 例如,这样尝试
通过此更改,我可以改变观点。