Aller au contenu

Mais où a été prise cette photo ?

Grâce à la librairie Pillow de Python on peut aussi "explorer" des images.

Les métadonnées d'une image

Place cette image dans le même dossier que le fichier python. Modifie le nom du fichier à ouvrir et execute le programme suivant :

import PIL.Image as pil

img = pil.open("nom_du_fichier_image.jpg") # changer le nom du fichier
exif_data = img._getexif()

print(exif_data)

# img.show()

C'est ce que l'on appelle les metadonnées de la photographie numérique. En effet l'appareil photo, le téléphone, la caméra numérique, en plus d'enregistrer l'image elle-même enregistre des données concernant l'image. Où a-t-elle été prise, par quel type d'appareil, à quelle date.

Pour afficher de manière plus lisible ces données, on peut utiliser Aperçu sur mac, ou bien cliquer à droite sur propriétés sous windows.

Comme vous pouvez le constater, nous avons un système clé:valeur (à chaque clé correspond une valeur). Les clés sont "codées" par des nombres, pour comprendre la signification de ces nombres, consultez le site tag exif.

En vous aidant du site web cité ci-dessus, essayez de trouver les informations suivantes pour l'image "plage.jpg" :

  • la largeur de l'image en pixel
  • la hauteur de l'image en pixel
  • le fabricant du matériel
  • la date et l'heure de la prise de vue

La clé "34853\" n'est pas tout le temps présente puisqu'il s'agit des coordonnées (latitude, longitude) de la prise de vue, il faut donc que l'appareil photo intègre un GPS (ce qui est le cas des smartphones), si nous double-cliquons sur cette clé "34853\", nous obtenons les informations suivantes :

Les lignes 1, 2, 3 et 4 vont particulièrement nous intéresser :

  • ligne 1 : précise que nous sommes dans l'hémisphère Nord.

  • ligne 2 : nous avons la latitude ((47, 1), (37, 1), (29107360, 1000000)) nous avons ici une latitude en degrés, minute, seconde (ici : 47 degrés 37 minutes et 29,107360 secondes, aussi notée 47°37\'29,107360\")

  • ligne 3 : précise que nous sommes à l'ouest (W) du méridien de Greenwich

  • ligne 4 : nous avons la longitude ((3, 1), (25, 1), (42976570,1000000)) ici aussi la longitude est donnée en degrés, minute, seconde (ici : 3°25'42,976570")

On peut facilement convertir des degrés, minute, seconde aussi noté DMS en "degrés décimaux" (DD). On a écrit un petit programme ci-dessous. Analyse-le, que fait-il ? À quoi sert chacune des lignes ?

Où a été prise la photographie : plage.jpg ?

Utilise openstreetmap pour répondre à cette question, il suffit de coller d'abord la latitude en décimal puis, séparée par une virgule, la longitude en décimal.

print("degrés : ")
d = float(input())
print("minutes : ")
m = float(input())
print("secondes : ")
s = float(input())
DD = d+(m/60)+(s/3600)
print(DD)

Les coordonnées géographiques

Le GPS

Comment donner du sens à une photographie numérique?