首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在2d点云中找洞

在2d点云中找洞
EN

Stack Overflow用户
提问于 2018-05-17 12:46:22
回答 1查看 784关注 0票数 0

我有一套2d的积分。它们是标准笛卡尔网格系统上的X,Y坐标。有人知道如何实现(在Python中优先)一种算法,该算法将隔离每个“孔的区域”,以找到每个孔的最大直径。

下面是一个实际点集的示例:

更新:

我设法用固定数量的集群来隔离每个区域,但是如何根据“洞的区域”的数量来定义集群的数量呢?

代码语言:javascript
复制
from sklearn.cluster import KMeans
import numpy as np
import  ipyvolume.pylab as p

dat     = xyz
xycoors = dat[:,0:2]


fit = KMeans(n_clusters=5).fit(xycoors)
clus_datas={i: xycoors[np.where(fit.labels_ == i)] for i in 
range(fit.n_clusters)}

clus_1=clus_datas[0]
clus_2=clus_datas[1]
clus_3=clus_datas[2]
clus_4=clus_datas[3]
clus_5=clus_datas[4]



min_bloc=np.array(nuage)
fig = p.figure(width=1000)
fig.xlabel='x'
fig.ylabel='z'
fig.zlabel='y'

p.scatter(clus_1[:,1], clus_1[:,1]*0, clus_1[:,0], color="black", size=.1)     
p.scatter(clus_2[:,1], clus_2[:,1]*0, clus_2[:,0], color="red",  size=.1) 
p.scatter(clus_3[:,1], clus_3[:,1]*0, clus_3[:,0], color="green",  size=.1) 
p.scatter(clus_4[:,1], clus_1[:,1]*0, clus_4[:,0], color="bleu",  size=.1)     
p.scatter(clus_5[:,1], clus_2[:,1]*0, clus_5[:,0], color="red", size=.1) 

p.squarelim()
p.show()

结果:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-24 21:40:06

求解的 基于密度的带噪声应用空间聚类(DBSCAN)根据估计的簇数来识别每个洞,直径可以用凸壳来计算。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50391853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档