【发布时间】:2016-07-11 11:36:14
【问题描述】:
我已经根据description 编写了一个脚本。
2D numpy 数组的图像很少,如果图像很大,计算每个值需要很长时间。有没有比我的解决方案更好的方法?
考虑三幅图像,均值向量和反协方差矩阵:
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
我用双循环解决了这个问题:
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
我认为可能有更好的方法可以更快地做到这一点。也许没有循环?
【问题讨论】:
标签: python numpy image-processing mahalanobis