pytorch 视图控件中的更新不影响open3d中的最终视图

mnemlml8  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(115)

我有一个玩具示例,我想在调用visualizer.run()时更改默认视图,例如,我想更改可视化工具中场景的缩放、旋转和缩放的默认值。

import sys
import numpy as np
import open3d as o3d

# cloud = o3d.geometry.PointCloud()
ply_point_cloud = o3d.data.PLYPointCloud()

pcd = o3d.io.read_point_cloud(ply_point_cloud.path)

visualizer = o3d.visualization.Visualizer()
visualizer.create_window()
visualizer.add_geometry(pcd)
view_ctl = visualizer.get_view_control()
# view_ctl=  view_ctl.convert_to_pinhole_camera_parameters()  # noqa: E501
view_ctl.scale(0)
visualizer.update_renderer()
visualizer.run()

字符串

ycggw6v2

ycggw6v21#

代码很好(测试和结果如下),但是,我很确定你使用的是0.17.0版本。移动到更新的开发人员版本,其中此错误已被修复。从这里安装。
P.S.根问题是由于get_view_control返回VisualizerViewControl的副本,因此对其的任何更改都不会影响Visualizer

import numpy as np
import open3d as o3d

points = np.random.rand(30000, 3) * [1,2,3]
colors = np.random.rand(30000, 3)
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(points)
pcd.colors = o3d.utility.Vector3dVector(colors)

visualizer = o3d.visualization.Visualizer()
visualizer.create_window()
visualizer.add_geometry(pcd)
view_ctl = visualizer.get_view_control()
view_ctl.camera_local_translate(forward=0, right=0.5, up=0)
visualizer.update_renderer()
visualizer.run()

字符串
这将产生左移的图像,而不是将点云保持在中心-x1c 0d1x

相关问题