Page 1 sur 1

Stats exif sur mac

Publié : Mer 28 Mars 2007 23:33
par gr
Dans l'optique d'identifier mes besoins en objectifs, je voudrais générer automatiquement des stats exif à partir de ma base de photos pour connaître les focales que j'utilise le plus.

Connaissez-vous un soft ou un script qui permette de le faire ?

J'ai trouvé l'utilitaire ExifTool qui permet de manipuler les exif de toutes sortes de format jpg et raw (dont le format ARW), mais je n'ai pas trouvé de script pour mac qui utilise cet outil pour générer des stats (il semble y en avoir un pour windows Exif Stats Utility.

Quelqu'un aurait-il cela sous le coude ?

Publié : Jeu 29 Mars 2007 00:19
par vince
Salut

J'ai déjà fait des recherches à ce sujet, infructueuses jusqu'à présent.

Dès fois je me dis qu'il faudrait que je le fasse moi-même... Je vais y réfléchir, tiens...

Publié : Jeu 29 Mars 2007 13:02
par gr
je vois que je ne suis pas le seul ... en scriptant exiftool, ça doit être réalisable ...

Publié : Jeu 29 Mars 2007 16:35
par vince
Effectivement, je n'ai jamais fait ce genre de truc mais ça pourrait être l'occasion de s'y mettre.

Tu connais toi ?

Publié : Jeu 29 Mars 2007 16:44
par gr
Moyennement, je vais déjà essayer de regarder l'outil qui lit les exif pour voir ce qu'on peut en tirer ...

Publié : Ven 30 Mars 2007 23:39
par gr
J'ai pris le temps de creuser la question, ExifTool est vraiment très puissant.

La commande

Code : Tout sélectionner

exiftool --FocalLength -m -r DIRECTORY/
permet d'extraire les focales utilisées dans un répertoire et ses sous répertoires :

Code : Tout sélectionner

======== 2006/12/16/DSC00012-1.jpg
Focal Length                    : 70.0mm
======== 2006/12/16/DSC00012.JPG
Focal Length                    : 70.0mm
======== 2006/12/16/DSC00015.JPG
Focal Length                    : 60.0mm
======== 2006/12/16/DSC00016.JPG
Focal Length                    : 24.0mm
======== 2006/12/16/DSC00017.JPG
Focal Length                    : 60.0mm
======== 2006/12/16/DSC00018.JPG
Focal Length                    : 70.0mm
======== 2006/12/16/DSC00019.JPG
Focal Length                    : 50.0mm
======== 2006/12/16/DSC00021.JPG
Focal Length                    : 26.0mm
======== 2006/12/16/DSC00024.JPG
Focal Length                    : 18.0mm


Il faut ensuite nettoyer tout ça.

Code : Tout sélectionner

grep -w "Focal Length"
permet de ne garder que les lignes faisant référence aux focales.

Code : Tout sélectionner

sed "s/^Focal Length.*: //"
puis

Code : Tout sélectionner

sed "s/.0mm//"
permet de ne garder que la valeur numérique.

Code : Tout sélectionner

sort | uniq -c
permet de compter les occurences.

En résumé, la commande shell :

Code : Tout sélectionner

exiftool -FocalLength -m -r DIRECTORY/ | grep -w "Focal Length" | sed "s/^Focal Length.*: //" | sed "s/.0mm//" | sort | uniq -c > sortie.txt
permet de lister la valeur des focales utilisées dans un répertoire et ses sous-répertoires :

Code : Tout sélectionner

   1 100
  16 18
   9 20
  10 22
   1 230
  15 24
   1 250
  23 26
  31 28
  30 30
  59 35
  37 40
  45 45
  53 50
  59 60
  49 70
   1 75
   1 90


C'est facile à adapter pour avoir les ouvertures, les vitesses, ... Il ne reste plus qu'à faire un petit graphique ...[/i]

Publié : Sam 31 Mars 2007 00:28
par gr
Avec un petit coup d'excel, on peut faire un graphe. J'ai fait tourner le script sur ma base de photos depuis que j'ai l'alpha 100, voici le résultat :

Image

En conclusion, j'utilise bcp de focales différentes sur la plage du zoom du kit, et avec mon 75-300, je suis la plupart du temps à 300.

Donc, si j'avais un budget no limit, je prendrais le CZ 16-80 et une focale fixe à 300, ou un zoom qui me permette d'aller au delà, genre le 100-400 APO.

En tout cas, ça me semble instructif sur la manière dont je prends mes photos ...

Publié : Sam 31 Mars 2007 10:39
par Crolle
Merci gr pour ces infos. J'ai installé Exiftool sur mon G5. J'ai bien la liste complète de mes photos quand je rentre la commande exiftool --FocalLength -m -r DIRECTORY/. Après je tape la commande grep -w "Focal Length" en dessous de la liste précédemment obtenue pour ne garder que les infos concernant les focales. Mais rien ne se passe. Aucun nettoyage des infos non souhaitées. J'ai dû rater quelque chose!! As-tu une idée?

Publié : Dim 01 Avr 2007 21:35
par gr
Crolle, pour faire étape par étape, il faut stocker le résultat dans un fichier en redirigeant la sortie au moyen d'un ">".

Par ex :

Code : Tout sélectionner

exiftool --FocalLength -m -r DIRECTORY/ > resultat1.txt


Puis :

Code : Tout sélectionner

cat resultat1.txt | grep -w "Focal Length" > resultat2.txt


...

Sinon, il faut lancer la commande complète directement :

Code : Tout sélectionner

exiftool -FocalLength -m -r DIRECTORY/ | grep -w "Focal Length" | sed "s/^Focal Length.*: //" | sed "s/.0mm//" | sort | uniq -c > sortie.txt

[/code]

Publié : Dim 01 Avr 2007 21:43
par vince
Salut

Je n'ai pas encore essayé mais d'ores et déjà bravo, je mesure toute l'étendue de mon ignorance dans le domaine de la ligne de commande...

Je reviens très vite, pour exposer les difficultés que je ne vais pas manquer de rencontrer tel que je me connais.

Publié : Lun 02 Avr 2007 01:36
par teriiehina
Bijour,

pour une fois que j'ai pouvoir me rendre utile sur ce forum ... ;)
bon, en même temps, tout le travail a déjà été fait par gr

je me contenterai donc de rendre tout ça suffisamment automatique:
il vous faudra préalablement installé GnuPlot.

ensuite, dans un fichier focales.sh, vous copiez/collez:

Code : Tout sélectionner

exiftool -FocalLength -m -r $1 | grep -w "Focal Length" | sed "s/^Focal Length.*: //" | sed "s/.0mm//" | sort | uniq -c > focales.dat
gnuplot focales.script


ensuite, dans votre terminal, vous faites un

Code : Tout sélectionner

chmod +x focales.sh


vous allez ensuite vous créez un fichier focales.script dans lequel vous copiez/collez ceci:

Code : Tout sélectionner

#fichier d'execution
set grid
set yrange[0:2000]
set xrange[0:300]
set ylabel "Nombres de Photos"
set xlabel "Focales"
plot "focales.dat" using 2:1 title 'Stats' with lines
# set terminal cgm 14 linewidth 2 14
pause -1
#set terminal postscript portrait
#set out "courbe1.ps"


enfin, vous n'avez plus qu'à lancer dans le terminal votre script shell de la façon suivante:
./focales.sh rep_a_analyser


perso, je shoote principalement à 28mm:

Image

pour les fainé... néophytes de la ligne de commande, tous les fichiers sont ici

Publié : Lun 02 Avr 2007 09:36
par gr
teriiehina, merci pour le complément !

Publié : Lun 02 Avr 2007 16:31
par vince
Bonjour les amis.

Ah vraiment bravo à tous les deux, depuis le temps que je cherche à faire ça alors que j'avais les outils devant mon nez et que je ne les voyais pas... 8)

Bon puisque c'est noël je continue dans ma lettre de cadeaux :

Ce qui serait bien et qui ne devrait pas être très difficile à faire, ce serait un filtre sur le type d'appareil. Dans iPhoto j'ai regroupé tout un tas de photos dont certaines faites avec des compacts et que je n'ai pas spécialement envie d'analyser.

On devrait pouvoir paramétrer le type assez facilement, non ?

Si vous avez cinq minutes... :roll:

Publié : Lun 02 Avr 2007 16:37
par gr
Tout à fait, il suffit juste de passer les bons paramètres recherchés à exiftool. Il faut regarder dans la doc en ligne, trouver le bon et l'ajouter à la ligne de commande.

Publié : Lun 02 Avr 2007 22:41
par vince
Je cherche, je cherche mais je ne trouve pas.

pas super user-friendly la doc en ligne...

Publié : Mar 03 Avr 2007 08:58
par gr
Le mieux, c'est de lister tous les paramètres sur quelques photos représentatives pour identifier celui qui sera discriminant.