Я пытаюсь реализовать алгоритм минимального расстояния для классификации изображений с использованием GDAL и Python. После вычисления среднего пиксельного значения областей выборки и сохранения их в списке массивов («sample_array») я считываю изображение в массив, называемый «значениями». С помощью следующего кода я просматриваю этот массив:
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. Или, может быть, кто-то знает библиотеку, которую я мог бы использовать. Заранее спасибо, Mario