簡體   English   中英

在二維點雲中尋找孔

[英]Finding holes in 2d point cloud

我有一套2D點。 它們是標准笛卡爾網格系統上的X,Y坐標。 有誰知道一種實現(最好在Python中)算法的方法,該算法將隔離每個“孔的面積”,以便找到每個孔的最大直徑。

下面是實際點集的示例:

在此處輸入圖片說明

更新:

我設法用固定數量的簇隔離每個區域,但是如何根據“孔的面積”的數量來定義簇的數量呢?

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()

結果: 在此處輸入圖片說明

基於 解決方案 的基於密度的帶噪聲的應用程序空間聚類(DBSCAN)根據估計的聚類數識別每個孔,可使用凸包來計算直徑

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM