Inspection des données d’images 3D avec pyclesperanto#
Ce notebook démontre comment naviguer à travers des images 3D.
import pyclesperanto_prototype as cle
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from skimage.io import imread
# Laod example data
input_image = imread('../../data/Haase_MRT_tfl3d1.tif')
Copier une tranche#
Pour visualiser des tranches spécifiques sans que l’image ne quitte la mémoire GPU, utilisez la méthode copy_slice.
# Copy Slice
image_slice = cle.create([256, 256]);
slice_z_position = 40.0;
cle.copy_slice(input_image, image_slice, slice_z_position)
# show result
cle.imshow(image_slice)
# Alternativement, ne pas transmettre l'image de sortie et la récupérer
another_slice = cle.create_2d_xy(input_image)
cle.copy_slice(input_image, another_slice, slice_index = 80)
# show result
cle.imshow(another_slice)
Projection#
pyclesperanto offre des projections min/moyenne/max et somme en x, y et z.
# Maximum Z Projection
projection = cle.maximum_z_projection(input_image)
# show result
cle.imshow(projection)
Si vous passez une pile d’images à cle.imshow, il fera la projection d’intensité maximale le long de Z pour vous :
cle.imshow(input_image)
# Sum Z Projection
projection = cle.sum_z_projection(input_image)
# show result
cle.imshow(projection)
# Mean Y Projection
projection = cle.mean_y_projection(input_image)
# show result
cle.imshow(projection)
Transposer XZ#
Pour transposer les axes des images dans le GPU, utilisez les méthodes de transposition
# Transpose X against Z
transposed_image = cle.create([256, 256, 129]);
cle.transpose_xz(input_image, transposed_image)
# show result
cle.imshow(transposed_image[126])
cle.imshow(transposed_image[98])
Utilisez des sous-graphiques pour les mettre côte à côte
fig, axs = plt.subplots(1, 4, figsize=(15, 7))
cle.imshow(transposed_image[75], plot=axs[0])
cle.imshow(transposed_image[100], plot=axs[1])
cle.imshow(transposed_image[125], plot=axs[2])
cle.imshow(transposed_image[150], plot=axs[3])