Ich möchte ein 32-Bit-TIFF-Bild (Graustufen, RGB) lesen, das ich selbst mit Python erstellt habe.
B. mit einem DNG / TIFF-Writer, der nur in C ++ mit Header verwendet werden kann.
https://github.com/syoyo/tinydngloader/tree/master/examples/dngwriter
Ich möchte 2D-Tensordaten und HDR-Bilder als Tiffs speichern.
How do you read a 32-bit TIFF image in python? https://stackoverflow.com/questions/40751523/how-do-you-read-a-32-bit-tiff-image-in-python
https://gist.github.com/ax3l/5781ce80b19d7df3f549
Sie können es um Skimage, Imageio, Pillow (PIL), OpenCV lesen. Diese scheinen Tifffile intern zu verwenden. Zumindest hat imageio Tifffile verwendet.
https://pypi.org/project/tifffile/
Möglicherweise können Sie es auch mit rawpy lesen.
Sie können es um imageio (tifffile) speichern.
In TIFF haben wir festgestellt, dass Pixeldaten auch ordnungsgemäß endiankonvertiert werden müssen. Wenn Sie beispielsweise mit BigEndian unter x86 exportieren, konvertieren Sie in Endian und exportieren Sie.
Als ich das 32-Bit-Float-TIFF von BigEndian mit imageio und cv2 mit meinem eigenen TIFF las, bemerkte ich, dass der Pixelwert vertauscht wurde und zu einem unbestimmten Wert wurde.
Ursprünglich sollte es nicht notwendig sein, zu tauschen, aber wird dies durch die TIFF-Spezifikation irgendwo entschieden?
Für x86 ist es vorerst eine gute Idee, ein TIFF mit Little Endian zu erstellen.
Recommended Posts