ich mit einigen Graustufen tif-Dateien arbeiten müssen, und ich habe PIL worden, sie als Bilder zu importieren und sie in numpy Arrays konvertieren:Dolmetschen numpy Array von tif-Datei erhalten
np.array(Image.open(src))
ich ein transparentes haben wollen Verständnis genau, was die Werte dieser Array entsprechen und insbesondere war es nicht klar, welcher Wert als Weißpunkt oder Schwarzpunkt für meine Bilder geeignet war. Zum Beispiel, wenn ich dieses Array in ein Array von Floats mit Pixelwerten von 1 für Weißwerte und 0 für Schwarz mit anderen linear skalierten Werten konvertieren wollte.
Ich habe einige naive Methoden einschließlich der Skalierung durch den Maximalwert im Array versucht, aber beim Öffnen der resultierenden Dateien gibt es immer eine gewisse Verschiebung der Farbstufen.
Gibt es Dokumentation für den richtigen Weg, um die in diesen TIF-Arrays gespeicherten Werte zu verstehen?
Vielen Dank für Ihre Antwort. Eine Sache scheint mir hier seltsam zu sein, und das ist, dass mein numpliges Array ganz klar kein 'Uint8'-Array ist. Die Maximalwerte im Array liegen irgendwo in der Größenordnung von 30000, aber um fair zu sein, arbeite ich mit 16-Bit-Graustufen-TIFs. –
@FrankWang Das erklärt es als. Das ist ein altes Problem mit PIL, von dem ich annehmen würde, dass es jetzt gelöst wäre. In jedem Fall gibt es Lösungen. Sehen Sie sich zum Beispiel diesen Link an: http://blog.philippklaus.de/2011/08/handle-16bit-tiff-images-in-python/ – armatita