我有一组看起来类似于球体的 3D 数据点。我需要将这些数据点连接为防水网格,以便将其用于模拟。
我与 Meshlab 合作并获得了合理的网格,但不是防水的。
在此之后,我尝试使用球枢轴算法来使用 Open3D python 库。由此,我无法按预期获得防水网格。我尝试使用hole_fixer 外部库(Hole_fixer),但在使用cmake 安装时发现并出错。
我已经插入了代码以及用于 open3D 的“xyz”数据点。
import numpy as np
import open3d as o3d
dataname = 'meshdata2.xyz'
point_cloud = np.loadtxt(dataname, skiprows=1)
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(point_cloud[:,:3])
pcd.estimate_normals()
distances = pcd.compute_nearest_neighbor_distance()
avg_dist = np.mean(distances)
radius = 5*avg_dist
bpa_mesh = o3d.geometry.TriangleMesh.create_from_point_cloud_ball_pivoting(pcd, o3d.utility.DoubleVector([radius, radius*2, radius*0.5]))
print(str(bpa_mesh.is_watertight()))
o3d.visualization.draw_geometries([bpa_mesh])
“xyz 文件”的链接:xyz_file_link
从 Open3D 获得的网格:Mesh_from_open3D
我想知道如何为这些数据点获取防水网格。
任何线索将不胜感激。
问候,
苏纳格 R A.