Laden einer tiff-Stapel in einen numpy-array mit python
Stack Overflow Hallo community,
Ich bin da ein kleines Problem mit .tif-Dateien. Ich bin sicher, es ist nur ein kleines problem, dass ich kippe um (beachten Sie, ich bin ein relativ neuer Programmierer).
Grundsätzlich: ich habe vorbereitet .tif-Dateien sind 64x64xn in der Größe (n bis 1000). Das Bild ist nur eine einzige Datei, enthält alle diese Scheiben. Ich würde gerne laden Sie das Bild in eine (mehrdimensionale) numpy-array. Ich habe versucht:
from PIL import Image as pilimage
file_path=(D:\luca\test\test.tif)
print("The selected stack is a .tif")
dataset = pilimage(file_path)
tiffarray = np.array(dataset)
expim = tiffarray.astype(np.double);
print(expim.shape)
und andere Dinge (wie tifffile). Ich scheinen nur Lesen zu können, das erste Segment des Stapels. Ist es möglich für "expim" enthalten alle Informationen, die gespeichert wird im tiff-Stapel?
Jede Hilfe ist willkommen!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin nicht sicher, ob es ist ein Weg, um PIL zu öffnen, mehrere Scheiben eines tiff-Stapel.
Wenn Sie nicht gebunden sind, um mit PIL, aber eine alternative ist scikit-image, welches sich öffnet, mehrere Scheiben aus einer tiff-stack standardmäßig. Hier finden Sie einige Beispiel-code, wie das laden einer tiff-Stapel in ein Numpy-array mit scikit-image:
Beachten Sie, dass die imread Funktion lädt das Bild direkt in ein Numpy-array. Auch werden die Dimensionen des resultierenden Arrays angeordnet sind (z, y, x), wobei z stellt die Tiefe, y repräsentiert die Höhe, und x steht für die Breite. Somit erhalten Sie eine einzige Scheibe aus dem Stapel alles, was Sie tun müssen, ist:
PIL hat eine Funktion
seek
zu bewegen, um verschiedene Ausschnitte einer tiff-Stapel.