Визуализация облака точек с помощью open3d
Я использую следующий код для визуализации облака точек.
import open3d as o3d
pcd = o3d.io.read_point_cloud("assets/pcd.ply")
o3d.visualization.draw_geometries([pcd],lookat=[2.6172, 2.0475, 1.532],)
К сожалению, я получаю следующую ошибку
Traceback (most recent call last):
File "/home/app/pointcloud.py", line 5, in <module>
o3d.visualization.draw_geometries([pcd],lookat=[2.6172, 2.0475, -0.4])
TypeError: draw_geometries(): incompatible function arguments. The following argument types are supported:
1. (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
Invoked with: [geometry::PointCloud with 677248 points.]; kwargs: lookat=[2.6172, 2.0475, -0.4]
я что-то упускаю?
2 ответа
Здесь нет
lookat
параметр в функции draw_geometries. Вы можете просто визуализировать без этого параметра
Более глубокая причина ошибки вызвана несоответствующей версией open3D. В последней версии были изменены некоторые параметры и функции.
Я не уверен в версии Open3D 3-летней давности, но есть вариант draw_geometrys, который принимаетlookat
переменная сейчас. Код pybind для генерации привязок Python находится здесь , но обратите внимание, что необходимо передать все 4 переменные:front, lookat, up, zoom
.
o3d.visualization.draw_geometries(
geometries,
front=[0.4699189535486108, -0.62764022425775134, 0.62068021233921933],
lookat=[ -0.97243714332580566, -0.1751408576965332, 0.51464511454105377 ],
up=[ -0.36828927493940194, 0.49961995188329117, 0.78405542766104697 ],
zoom=0.15999999999999961,
)
Совет. Вышеуказанные значения сначала генерируются при выполненииo3d.visualization.draw_geometries(geometries,)
, установите положение камеры и затем нажмитеCtrl + C
который копирует настройки управления просмотром. Пример вывода: -
{
"class_name" : "ViewTrajectory",
"interval" : 29,
"is_loop" : false,
"trajectory" :
[
{
"boundingbox_max" : [ 3.0492053031921387, 6.549717903137207, 1.4599999189376831 ],
"boundingbox_min" : [ -4.99407958984375, -6.8999996185302734, -0.43070968985557556 ],
"field_of_view" : 60.0,
"front" : [ 0.0, 0.0, 1.0 ],
"lookat" : [ -0.97243714332580566, -0.1751408576965332, 0.51464511454105377 ],
"up" : [ 0.0, 1.0, 0.0 ],
"zoom" : 0.69999999999999996
}
],
"version_major" : 1,
"version_minor" : 0
}