Я получаю данные 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-точек, я бы очень хотел узнать, как это сделать.