2D 配列 (点の数、座標の数) として定義された曲線のセットがあります。ハウスドルフ距離を使用して、それらの距離行列を計算しています。私の現在のコードは次のとおりです。残念ながら、それぞれが 50 ~ 100 の 3D ポイントを持つ 500 ~ 600 のカーブでは遅すぎます。そのためのより速い方法はありますか?
def distanceBetweenCurves(C1, C2):
D = scipy.spatial.distance.cdist(C1, C2, 'euclidean')
#none symmetric Hausdorff distances
H1 = np.max(np.min(D, axis=1))
H2 = np.max(np.min(D, axis=0))
return (H1 + H2) / 2.
def distanceMatrixOfCurves(Curves):
numC = len(Curves)
D = np.zeros((numC, numC))
for i in range(0, numC-1):
for j in range(i+1, numC):
D[i, j] = D[j, i] = distanceBetweenCurves(Curves[i], Curves[j])
return D