sklearn.neighbors.kneighbors_graph的简单属性介绍

connectivity = kneighbors_graph(data, n_neighbors=7, mode='distance', metric='minkowski', p=2, include_self=True)
     # kneighbors_graph([X,n_neighbors,mode]) 计算X中k个临近点(列表)对应的权重。
# metric:字符或者调用,默认值为‘minkowski’ # n_neighbors:整数,可选(默认值为5),用kneighbors_graph查找的近邻数。 # p:整数,可选(默认值为2)。是sklearn.metrics.pairwise.pairwise_distance里的闵可夫斯基度量参数,当 p=1时, # 使用曼哈顿距离。当p=2时,使用的是欧氏距离。对于任意的p,使用闵可夫斯基距离。

1、n_neighbors:整数,可选(默认值为5),用k_neighbors查找的近邻数。
2、radius:浮点数,可选(默认值为1.0)
3、algorithm:{‘auto’,’ball_tree’,’kd_tree’,’brute’},可选 算法用来计算临近的值,‘ball_tree’会用BallTree,’kd_tree’会用KDtree,’brute’会用burte-force来搜寻。
‘auto’会基于fit方法来决定大部分相似情况下合适的算法。
4、NoTe:如果fit用在稀疏(矩阵)的输入上,那么将会覆盖参数的设置,而使用brute force.
5、leaf_size:整数,可选(默认值为30)
6、Leaf size是针对BallTree 和 KDTree的。 它将会影响构建模型和搜寻的速度,以及存储的树的内存。可选值将决定该问题的类型。
7、p:整数,可选(默认值为2)。是sklearn.metrics.pairwise.pairwise_distance里的闵可夫斯基度量参数,当 p=1时,使用曼哈顿距离。当p=2时,使用的是欧氏距离。对于任意的p,使用闵可夫斯基距离。
8、metric:字符或者调用,默认值为‘minkowski’
9、metric用来计算距离。scikit-learn或者scipy.spatial.distance中的任何距离都可以被使用。
如果距离是可选函数,每一对实例都会返回相应的记录值。(无法计算矩阵间的距离。)
10、metric_params:字典,可选(默认值为1)
关于距离公式中其他的关键值讨论。
11、n_jobs:int,可选(默认值为1)
表示搜寻近邻值时并行作业的数量 。如果为-1,那么并行数量则会被设定为CPU的内核数。
(只针对k_neighbors 和kneighbors_graph方法)

转载于:https://www.cnblogs.com/peixu/p/7991662.html

# 导入需要的模块 import numpy as np import open3d as o3d # 用于读写pcd文件 from sklearn.neighbors import kneighbors_graph # 用于构建KNN图 from scipy.sparse.csgraph import connected_components # 用于找到连通域 # 读取点云数据 pc = o3d.io.read_point_cloud(r'E:\BISHE\pcd\neuvsnap_0418_154523.pcd') # 读取pcd文件 points = np.asarray(pc.points) # 转换为numpy数组 # 构建KNN图,k为邻居数,可以根据数据密度调整 k = 10 graph = kneighbors_graph(points, k, mode='connectivity', include_self=False) # 找到最大的连通域 n_components, labels = connected_components(graph, directed=False) largest_label = np.argmax(np.bincount(labels)) # 找到点数最多的标签 largest_component = points[labels == largest_label] # 筛选出对应的点 # 保存筛选后的点云数据为pcd文件 pc_filtered = o3d.geometry.PointCloud() # 创建新的点云对象 pc_filtered.points = o3d.utility.Vector3dVector(largest_component) # 设置点云数据 o3d.io.write_point_cloud(r'E:\BISHE\pcd\output1.pcd', pc_filtered) # 保存为pcd文件 # 为点云数据设置颜色 colors = np.zeros((points.shape[0], 3)) # 创建一个颜色数组,大小和点云数组一致 colors[labels == largest_label] = [0.5, 0.5, 0.5] # 将保留的点云设置为灰色 colors[labels != largest_label] = [1.0, 0.0, 0.0] # 将处理的点云设置为红色 pc.colors = o3d.utility.Vector3dVector(colors) # 将颜色数组赋值给点云对象 # 可视化点云数据 o3d.visualization.draw_geometries([pc]) # 调用open3d的可视化函数,显示点云对象这段代码降噪原理是什么
05-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值