stl三维模型转为点云

作者:iohannes 发布时间: 2025-06-10 阅读量:25
import open3d as o3d


def get_point_cloud_from_file(input_file_name, output_file_name, 
                              target_number_of_triangles=1000, number_of_points=1000):
    mesh = o3d.io.read_triangle_mesh(input_file_name)
    new_mesh = mesh.simplify_quadric_decimation(target_number_of_triangles=target_number_of_triangles)
    new_mesh.compute_vertex_normals()
    pcd = new_mesh.sample_points_poisson_disk(number_of_points=number_of_points)
    o3d.io.write_point_cloud(output_file_name, pcd)


if __name__ == '__main__':
    input_file_name = 'cube.stl'
    output_file_name = 'cube.pcd'
    get_point_cloud_from_file(input_file_name, output_file_name)