Open3d - 将多个点云可视化为 video/animation
Open3d - visualizing multiple point clouds as a video/animation
我已经使用 RGB+深度视频生成了多个点云,并希望将多个点云可视化为视频或动画。
目前我正在使用Python,我的部分代码如下:
for i in range(1,10)
pcd = Track.create_pcd(i)
o3d.visualization.draw_geometries([pcd])
pcd_list.append(pcd)
当我使用draw_geometries或draw_geometries_with_animation_callback时,它们似乎无法显示点云列表:
o3d.visualization.draw_geometries([pcd_list])
或
def rotate_view(vis):
ctr = vis.get_view_control()
ctr.rotate(10.0, 0.0)
return False
o3d.visualization.draw_geometries_with_animation_callback([pcd_list],rotate_view)
它给出了以下错误:
TypeError: draw_geometries(): incompatible function arguments. The
following argument types are supported:
- (geometry_list: List[open3d.open3d_pybind.geometry.Geometry], window_name: str = ‘Open3D’, width: int = 1920, height: int = 1080,
left: int = 50, top: int = 50, point_show_normal: bool = False,
mesh_show_wireframe: bool = False, mesh_show_back_face: bool = False)
-> None
有没有例子说明如何将点云列表导出到视频中,比如设置查看器,并以 0.5 秒的 waitkey 显示每个点云,然后另存为视频文件 (.mp4/.阿维)?
还要获取然后设置视频中点云的固定视点?
非常感谢!
您可以使用 Open3D Non-blocking visualization。
会是这样
vis = o3d.visualization.Visualizer()
vis.create_window()
# geometry is the point cloud used in your animaiton
geometry = o3d.geometry.PointCloud()
vis.add_geometry(geometry)
for i in range(icp_iteration):
# now modify the points of your geometry
# you can use whatever method suits you best, this is just an example
geometry.points = pcd_list[i].points
vis.update_geometry(geometry)
vis.poll_events()
vis.update_renderer()
我已经使用 RGB+深度视频生成了多个点云,并希望将多个点云可视化为视频或动画。
目前我正在使用Python,我的部分代码如下:
for i in range(1,10)
pcd = Track.create_pcd(i)
o3d.visualization.draw_geometries([pcd])
pcd_list.append(pcd)
当我使用draw_geometries或draw_geometries_with_animation_callback时,它们似乎无法显示点云列表:
o3d.visualization.draw_geometries([pcd_list])
或
def rotate_view(vis):
ctr = vis.get_view_control()
ctr.rotate(10.0, 0.0)
return False
o3d.visualization.draw_geometries_with_animation_callback([pcd_list],rotate_view)
它给出了以下错误:
TypeError: draw_geometries(): incompatible function arguments. The following argument types are supported:
- (geometry_list: List[open3d.open3d_pybind.geometry.Geometry], window_name: str = ‘Open3D’, width: int = 1920, height: int = 1080, left: int = 50, top: int = 50, point_show_normal: bool = False, mesh_show_wireframe: bool = False, mesh_show_back_face: bool = False) -> None
有没有例子说明如何将点云列表导出到视频中,比如设置查看器,并以 0.5 秒的 waitkey 显示每个点云,然后另存为视频文件 (.mp4/.阿维)? 还要获取然后设置视频中点云的固定视点?
非常感谢!
您可以使用 Open3D Non-blocking visualization。
会是这样
vis = o3d.visualization.Visualizer()
vis.create_window()
# geometry is the point cloud used in your animaiton
geometry = o3d.geometry.PointCloud()
vis.add_geometry(geometry)
for i in range(icp_iteration):
# now modify the points of your geometry
# you can use whatever method suits you best, this is just an example
geometry.points = pcd_list[i].points
vis.update_geometry(geometry)
vis.poll_events()
vis.update_renderer()