J'essaye de lire les balises d'un fichier tiff en Python. Le fichier est RVB avec des valeurs uint16 par canal. J'utilise actuellement tifffile:
import tifffile img = tifffile.imread('file.tif')
Cependant, img
est un tableau numpy, qui n'a que des valeurs de pixels. Comment puis-je lire, par exemple, la x_resolution de l'image?
3 Réponses :
Pas sûr de tifffile
lib mais vous pouvez obtenir la résolution x
avec exifread
:
300
Sortie :
import exifread with open('image.tif', 'rb') as f: tags = exifread.process_file(f) print(tags['Image XResolution'])
J'ai trouvé une alternative:
import tifffile with tifffile.TiffFile('file.tif') as tif: tif_tags = {} for tag in tif.pages[0].tags.values(): name, value = tag.name, tag.value tif_tags[name] = value image = tif.pages[0].asarray()
Utilisation de skimage.external.tifffile code>
est une autre approche possible:
from skimage.external import tifffile with tifffile.TiffFile('your_file.tif') as tif: imgs = [page.asarray() for page in tif.pages] x_res = [page.tags['x_resolution'].value for page in tif.pages]
Edit : la copie de tifffile
a été supprimée dans version 0.17.1 , et tifffile
est maintenant installé via pip lors de l'installation de scikit-image