点云的Python均值采样

一、代码

Python

import numpy as np
import open3d as o3d


def mean_sampling(point_cloud, num_samples=None, depth=None, method='knn', k=10):
    """
    对点云进行均值下采样。

    :param point_cloud: Open3D PointCloud对象
    :param num_samples: (仅当method='knn'时使用) 期望的采样点数
    :param depth: (仅当method='octree'时使用) 八叉树的深度,决定了下采样的粒度
    :param method: 采样方法,'knn' 或 'octree'
    :param k: (仅当method='knn'时使用) 每个采样点的近邻数
    :return: 下采样后的Open3D PointCloud对象
    """
    if method == 'knn':
        # 生成搜索树
        pcd_tree = o3d.geometry.KDTreeFlann(point_cloud)

        # 随机选择初始采样点
        points = np.asarray(point_cloud.poi

猜你喜欢

转载自blog.csdn.net/qq_58060770/article/details/137377224