Как преобразовать трехмерное облако точек (.ply) в сетку (с гранями и вершинами)? - PullRequest
0 голосов
/ 10 июля 2019

У меня есть файл трехмерного облака точек с 1 миллионом точек, который мне нужно преобразовать в файл сетки в триместре.Конечная цель здесь состоит в том, чтобы взять облако точек и определить, является ли это облако точек выпуклым или вогнутым (trimesh позволяет мне сделать это, как только я преобразую облако в сетку).Я открыт для других библиотек, чтобы решить эту проблему.

Я пробовал триангуляцию Делоне, используя scipy, я просто не могу преобразовать свое pointcloud в правильный формат, чтобы он мог быть прочитан trimesh.

import open3d as o3d
import numpy as np
import trimesh
from scipy.spatial import Delaunay


pointcloud = o3d.io.read_triangle_mesh("pointcloud.ply")
points = np.array(pointcloud.points)
triangle_mesh = Delaunay(points)
#  How do i include triangle_mesh from Delaunay triangulation into processing the mesh file?
mesh = trimesh.load("pointcloud.ply")
print(trimesh.convex.is_convex(mesh))

Ошибка

geometry::TriangleMesh appears to be a geometry::PointCloud (only contains vertices, but no triangles).
geometry::TriangleMesh with 1390073 points and 0 triangles.
expected = (faces.shape[0], faces.shape[1] * 2)
AttributeError: 'NoneType' object has no attribute 'shape'
...