Je veux charger une image en couleur, la convertir en niveaux de gris, puis inverser les données dans le fichier.
Ce dont j'ai besoin : parcourir le tableau dans OpenCV et changer chaque valeur avec cette formule (elle pourrait être incorrecte mais elle me semble raisonnable) :
img[x,y] = abs(img[x,y] - 255)
mais je ne comprends pas pourquoi cela ne fonctionne pas :
def inverte(imagem, nom):
imagem = abs(imagem - 255)
cv2.imwrite(nom, imagem)
def inverte2(imagem, nom):
for x in np.nditer(imagem, op_flags=['readwrite']):
x = abs(x - 255)
cv2.imwrite(nom, imagem)
if __name__ == '__main__':
nom = str(sys.argv[1])
image = cv2.imread(nom)
gs_imagem = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
inverte(gs_imagem, "invertida.png")
inverte2(gs_imagem, "invertida2.png")
Je ne veux pas faire de boucle explicite (j'essaie d'être plus pythonique). Je peux voir qu'une image avec un fond blanc est devenue noire, mais cela semble être la seule couleur ayant beaucoup (voire aucun) changement.