Создание сеток из облаков точек онлайн с использованием Python - PullRequest
0 голосов
/ 16 мая 2019

Я получаю данные pointcloud через ROS с интервалами, и я хотел бы генерировать сетки из этих входов.

Я нахожусь на Ubuntu 18 и использую Python 2. Некоторые предлагали Delaunay3D, но я не видел примеров из библиотеки, очевидно, чтобы увидеть их, нужно купить книгу.

Есть ли способ, которым люди на самом деле достигли построения сеток из облаков точек?

P.S .: Я не ищу "программное обеспечение", такое как Meshlab, оно будет использоваться в коде Python.

Учитывая, что у меня есть следующие точки x, y, z, могу ли я создать сетку?

array([[ 0.53447372, -0.11848319,  0.05539769],
       [ 0.53447372, -0.11848319,  0.05539769],
       [ 0.53447372, -0.11848319,  0.05539769],
       ...,
       [ 0.53391876, -0.11834809,  0.05456705],
       [ 0.53391876, -0.11834809,  0.05456705],
       [ 0.53391876, -0.11834809,  0.05456705]])

Я пробовал что-то вроде это :

import numpy as np

# Create data with x and y random in the [-2, 2] segment, and z a
# Gaussian function of x and y.
np.random.seed(12345)
x = 4 * (np.random.random(500) - 0.5)
y = 4 * (np.random.random(500) - 0.5)


def f(x, y):
    return np.exp(-(x ** 2 + y ** 2))

z = f(x, y)
from mayavi import mlab
mlab.figure(1, fgcolor=(0, 0, 0), bgcolor=(1, 1, 1))

# Visualize the points
pts = mlab.points3d(x, y, z, z, scale_mode='none', scale_factor=0.2)

# Create and visualize the mesh
mesh = mlab.pipeline.delaunay2d(pts)
surf = mlab.pipeline.surface(mesh)

mlab.view(47, 57, 8.2, (0.1, 0.15, 0.14))
mlab.show()

но ожидаемый стиль данных не похож на мой, поэтому я продолжаю получать ошибки. Это может быть не то, что я ищу. Или, возможно, я использую это неправильно.

Если есть кто-нибудь, кто смог бы построить сетку из полученного набора 3d-точек, я бы очень хотел узнать, как это сделать.

...