Python 3: Estou tentando encontrar todos os pixels verdes em uma imagem atravessando todos os pixels usando um np.array, mas não consigo contornar o erro de índice

Atualmente, meu código consiste em carregar a imagem, que é bem-sucedida e não acredito que tenha nenhuma conexão com o problema.

Depois, transformarei a imagem colorida em um np.array chamado rgb

    # convert image into array
    rgb = np.array(img)
    red = rgb[:,:,0]
    green = rgb[:,:,1]
    blue = rgb[:,:,2]

Para verificar novamente meu entendimento dessa matriz, caso isso possa ser a raiz do problema, é uma matriz tal que rgb [coordenada x, coordenada y, faixa de cores] que mantém o valor entre 0-255 ou vermelho , verde ou azul.

Então, minha ideia era criar um loop for aninhado para atravessar todos os pixels da minha imagem (620px, 400px) e classificá-los com base na proporção de verde para azul e vermelho, na tentativa de destacar os pixels mais verdes e definir todos os outros como preto ou 0.

for i in range(xsize):
for j in range(ysize):
    color = rgb[i,j]  <-- Index error occurs here
    if(color[0] > 128):
        if(color[1] < 128):
            if(color[2] > 128):
                rgb[i,j] = [0,0,0]

O erro que estou recebendo ao tentar executar isso é o seguinte:

IndexError: o índice 400 está fora dos limites do eixo 0 com tamanho 400

Eu pensei que poderia ter algo a ver com os limites que eu estava dando iej, então tentei apenas classificar uma pequena parte interna da imagem, mas ainda assim tive o mesmo erro. Neste ponto, estou perdido quanto ao que é a raiz do erro e muito menos a solução.

questionAnswers(1)

yourAnswerToTheQuestion