Более быстрое управление пикселями изображения в питоне

У меня есть следующий вложенный цикл, который проходит по большому изображению (7020x5100) и устанавливает значения пикселей другого изображения с таким же размером в зависимости от значения i. Проблема в том, что это очень-очень медленно... не могли бы вы дать подсказку, как ускорить этот алгоритм?

A=[]

for x in xrange(x_img):
    for y in xrange(y_img):
        A.append(probImage1[x][y])
        A.append(probImage2[x][y])
        A.append(probImage3[x][y])
        i = np.argmax(A)
        if i == 0:
            processedImage[x,y] = [1, 89, 255]
        if i == 1:
            processedImage[x,y] = [241, 28, 3]
        if i == 2:
            processedImage[x,y] = [137, 254, 255]
        A = [] 

1 ответ

На моей машине ваш метод занимает 6 минут 55 секунд!

Старайтесь избегать циклов, повторяющихся над изображением, особенно при продолжающемся распределении памяти. Этот метод занимает 2,14 секунды для изображения 7020 x 5100

newProb=np.dstack((probImage1,probImage2,probImage3))
A=np.argmax(newProb,axis=2)
processedImage[A==0]=[1,89,255]
processedImage[A==1]=[241,28,3]
processedImage[A==2]=[137,254,255]
Другие вопросы по тегам