我正在尝试使用 GDAL 和 Python 实现图像分类的最小距离算法。在计算样本区域的平均像素值并将它们存储到数组列表(“sample_array”)中后,我将图像读入一个名为“values”的数组中。使用以下代码,我遍历该数组:
values = valBD.ReadAsArray()
# loop through pixel columns
for X in range(0,XSize):
# loop thorugh pixel lines
for Y in range (0, YSize):
# initialize variables
minDist = 9999
# get minimum distance
for iSample in range (0, sample_count):
# dist = calc_distance(values[jPixel, iPixel], sample_array[iSample])
# computing minimum distance
iPixelVal = values[Y, X]
mean = sample_array[iSample]
dist = math.sqrt((iPixelVal - mean) * (iPixelVal - mean)) # only for testing
if dist < minDist:
minDist = dist
values[Y, X] = iSample
classBD.WriteArray(values, xoff=0, yoff=0)
对于大图像,此过程需要很长时间。这就是为什么我想问是否有人知道更快的方法。我对python中不同变量的访问速度了解不多。或者也许有人知道我可以使用的库。在此先感谢,马里奥