19 lines
599 B
Python
19 lines
599 B
Python
import open3d as o3d
|
|
import sys
|
|
def process_ply_file(input_file, output_file):
|
|
# 读取输入的ply文件
|
|
pcd = o3d.io.read_point_cloud(input_file)
|
|
print(f"Total points: {len(pcd.points)}")
|
|
|
|
# 通过点云下采样将输入的点云减少
|
|
voxel_size=0.02
|
|
while len(pcd.points) > 40000:
|
|
pcd = pcd.voxel_down_sample(voxel_size=voxel_size)
|
|
print(f"Downsampled points: {len(pcd.points)}")
|
|
voxel_size+=0.01
|
|
|
|
# 将结果保存到输入的路径中
|
|
o3d.io.write_point_cloud(output_file, pcd)
|
|
|
|
# 使用函数
|
|
process_ply_file(sys.argv[1], sys.argv[2]) |