Алгоритм минимального расстояния с использованием GDAL и Python

Я пытаюсь реализовать алгоритм минимального расстояния для классификации изображений с использованием 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

5
задан Mario Härtwig 5 May 2011 в 20:47
поделиться