Open3d: 更新几何时无法控制查看器

创建于 2019-01-11  ·  3评论  ·  资料来源: intel-isl/Open3D

嗨,我编写了以下代码用于点云的实时可视化。 但是似乎在窗口显示后我无法使用鼠标旋转可视化器中的视图。 可以使用以下代码复制它。 我正在使用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()
question

最有用的评论

嗨@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
     :

通过此更改,我可以改变观点。

所有3条评论

嗨@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如何在不
我正在处理汽车激光雷达的点云,当我朝车窗外驶去时,点云消失了,走出了窗框。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

DKandrew picture DKandrew  ·  3评论

nrj127 picture nrj127  ·  4评论

mutp picture mutp  ·  4评论

tonghia picture tonghia  ·  3评论

Timu777 picture Timu777  ·  3评论