My program traverses an image and assigns the color values R, G, B to variables that were compared to matrices containing the R, G, B colors of asphalt and earth called auxAsfalto
and auxTerra
. The question is: when I run the image in the i, j
position, which are the pixels of the horizontal and vertical, everything happens normal, but when I go through the matrices that have the asphalt and earth color values, two errors occur: 1st for that runs through the asphalt color matrix does not exit position 0. However 2nd is that which traverses the color matrix of earth always returns the first line of the matrix. That is, the repeat structures are not working. Thanks in advance.
Follow the code snippet:
for i in range(img.shape[1]): #percorre a linha
for j in range(img.shape[0]): #percorre a coluna
auxCor = img[i,j]
for k in range(len(corAsfalto)): #percorre a matriz corAsfalto
auxAsfalto = corAsfalto[k]
print("TESTE auxAsfalto: {}".format(auxAsfalto))
if np.all(auxAsfalto) == np.all(auxCor): #verifica se as cores são iguais
print("Cor de Asfalto em auxAsfalto: {}".format(auxCor))
contAsfalto +=1
break
else:
print("Não possui asfalto")
break
for l in range(len(corTerra)): #percorre a matriz corTerra
auxTerra = corTerra[l]
print("TeSTe auxTerra: {}".format(auxTerra))
if np.all(auxTerra) == np.all(auxCor): #verifica se as cores são iguais
print("Cor terra em auxCor: {}, cor Terra em auxTerra: {}".format(auxCor, auxTerra))
contTerra += 1
break
else:
break
print("Quantidade de pixels de asfalto: %d"%contAsfalto)
print("Quantidade de pixels de terra: %d"%contTerra)
print("Quantidade de pixels da imagem: %d"%qntPixels)
Return:
Cor terra em auxCor: [132 136 117], cor Terra em auxTerra: [128. 105.1 98.9]
TESTE auxAsfalto: [154. 172.1 173.9]
Cor de Asfalto em auxAsfalto: [141 147 128]
TeSTe auxTerra: [128. 105.1 98.9]
Cor terra em auxCor: [141 147 128], cor Terra em auxTerra: [128. 105.1 98.9]
TESTE auxAsfalto: [154. 172.1 173.9]
Cor de Asfalto em auxAsfalto: [153 159 140]
TeSTe auxTerra: [128. 105.1 98.9]