我在合并Voronoi图的近点时遇到了麻烦,情况是这样的。
我的想法是将包含许多点的障碍物转换为一个点。
点的列表看起来类似于这样。
map = [[11, 29], [11, 30], [11, 31], [12, 28], [12, 29], [12, 30]]
我想把一组点合并成一个点 I want to take a group of points and merge these points into one.
我发现这个 numpy-2D(矢量化)中近点的快速熔合。
我不知道如何将这些点融合在一起,考虑到不是 "点状 "的障碍物。
我建议你不要 map
作为变量名,因为有一个同名的函数。你在genreal中的问题是寻找聚类,这和你链接中的问题很相似,但根据数据k-Dtree可能不是很好。我建议使用其他的聚类算法,从 采集器:
从sklearn.cluster import KMeans, DBSCANimport numpy as np。
obstacle_list = [[0, 0], [0, 1], [1, 0], [1, 1], [3, 3], [4, 3],[3,4]]
obstacle_array = np.array(obstacle_list) # for easier handling
#if you know the number of obstacles
number_of_obstacles=2
cluster_values = KMeans(n_clusters=number_of_obstacles).fit_predict(obstacle_array)
print(cluster_values) # those are the cluster MeanShift found
#if you know the maximal size of an obstacle
max_size_of_obstacle = 3
db_values = DBSCAN(eps=max_size_of_obstacle).fit_predict(obstacle_array)
print(cluster_values)# those are the cluster DBSCAN found
如果你想让它只由1个点来表示,可能是在中心的某个地方)你可以循环在 cluster_values
来计算它。我会取x和y值的平均值,但你的数据似乎只有整数,所以你可能想取其他的东西。