三维点云学习(4)5-DBSCNA python 复现-3-kd-tree radius NN 三方库 scipy 与 sklearn速度比较
import
from scipy.spatial import KDTree
from sklearn.neighbors import KDTree # KDTree 进行搜索
调用
#建树
#step2 通过判断,通过kd_tree radius NN找出所有核心点
nearest_idx = tree.query_radius(data, eps) # 进行radius NN搜索,半径为epsion,所有点的最临近点储存在 nearest_idx中
scipy 库 radius NN
nearest_idx = tree.query_ball_point(data, eps) # 进行radius NN搜索,半径为epsion,所有点的最临近点储存在 nearest_idx中
sklearn 库 radius NN
nearest_idx = tree.query_radius(data, eps) # 进行radius NN搜索,半径为epsion,所有点的最临近点储存在 nearest_idx中
速度比较
明显在使用radius nn,sklearn 比 scipy 速度要更快!!!
56000 points
scipy
segment datasize:56210
生成的聚类个数:186
dbscan time:456.837278
sklearn
segment datasize:52495
生成的聚类个数:183
dbscan time:25.373548
2000 points
scipy
生成的聚类个数:4
dbscan time:3.278673
sklearn
生成的聚类个数:5
dbscan time:0.030102