2016-05-26 15 views
0

Ich versuche, ein durchschnittliches Bild von einem anderen zu subtrahieren. Hier ist das, was ich getan habe:Subtrahiere ein Bild von einem anderen

Avv=Image.open("Average.tiff") 
os.chdir("D://ESSAI_1//Bulle") 
dir_bubble=os.listdir("D://ESSAI_1//Bulle") 
tiff_bubble=[filename for filename in dir_bubble if filename[-5:] ==".tiff"] 
new_image = ImageChops.subtract(tiff_bubble, Avv) 
out=Image.fromarray(new_image) 
out.save("Contrasted.tiff") 
out.show() 

Aber ich habe diese Fehlermeldung:

AttributeError: 'list' object has no attribute 'load' 
+0

Sie übergeben 'tiff_bubble' (eine Liste) in Ihr' ImageChops_subtract', das zwei Bilder als Parameter erwartet. –

Antwort

1

new_image = ImageChops.subtract(tiff_bubble, Avv)

subtract s erstes Argument soll ein Image-Objekt sein. tiff_bubble ist kein Image-Objekt, es ist eine Liste von Strings.

Versuchen Sie, tiff_bubble ein Bild zu machen.

possible_filenames = [filename for filename in dir_bubble if filename[-5:] ==".tiff"] 
tiff_bubble = Image.open(possible_filenames[0]) 
+0

Vielen Dank! Aber jetzt hat das Bild den falschen Modus, ich habe versucht, es mit new_image.convert ('L') zu konvertieren, aber es funktioniert immer noch nicht – Jalyo334

+0

'new_image.convert ('L')' macht nichts selbst, für die Der gleiche Grund, dass 'x + 4' den Wert von' x' nicht ändert. Du musst etwas mit dem Ergebnis machen. probiere 'new_image = new_image.convert ('L')' – Kevin

Verwandte Themen