1
私はこのdescriptionに基づいてスクリプトを書いています。イメージ(マハラノビス距離)を処理する最も効率的な方法
2D numpy配列として画像がほとんどありません。画像が大きければ、各値を計算するのに時間がかかります。私の解決策よりもこれを行うより良い方法はありますか?
は三つの画像を考えてみましょう、ベクトルと逆共分散行列を意味:私はこれを行うには良い方法があるかもしれないと思い
result = np.zeros((y,x)) # y,x are sizes of images
for i in xrange(y):
for j in xrange(x):
v = np.array([a[i,j], b[i,j], c[i,j]]) # array with particular pixels from each image
result[i,j] = mahalanobis(v,m,inv_cov) # calculate mahalanobis distance and insert value as a pixel
:
a = image1
b = image2
c = image3 # numpy arrays, NxM size
m = np.array([m1, m2, m3]) # means vector
covariance = np.cov([a.ravel(), b.ravel(), c.ravel()])
inv_cov = np.linalg.inv(covariance) # inv. covariance matrix
私は、二重ループで、この問題を解決しましたもっと早く。たぶんループなし?