Triez et organisez un énorme tas de photos [fermé]

2

J'ai 168307 photos jpg dans un dossier - résultat d'une récupération à partir d'un disque dur formaté accidentellement. Une navigation occasionnelle indique que 80% des fichiers ont été récupérés correctement. La plupart ont même des données EXIF ​​valides (y compris l'horodatage), certains sont partiellement récupérés (une partie de l'image est manquante mais reste utilisable), d'autres sont totalement inutiles rétabli). Tous les fichiers ont des noms numériques aléatoires et ont tous la même date et l'heure dans le système de fichiers.

En tant que tels, ils sont inutilisables. Ce que je veux faire c'est:

  • créer un ensemble de vignettes pour les parcourir manuellement et supprimer assez rapidement les fichiers inutiles,
  • en utilisant les balises EXIF ​​préservées pour trier automatiquement les images restantes dans une arborescence ordonnée de dossiers (année / mois / jour / images de la même manière que la structure - ou un ensemble de dossiers avec AAAA-MM-JJ comme nom de fichier).

Quels outils recommanderiez-vous pour une telle tâche? Devrais-je essayer quelque chose comme digikam pour la première partie et des outils en ligne de commande pour la seconde?

Andy
la source
1
Shotwell fera exactement ce que vous demandez. Vous devrez peut-être effectuer un traitement préalable si Shotwell n'est pas satisfait des images malformées, mais c'est une autre question.
msw
Quel type de prétraitement proposez-vous? Pensez-vous que cela permettra de gérer 168k images dans un seul dossier?
Andy
Le pré-traitement serait un processus par lot rejetant les images non décodables. Je ne connais pas d'outil, mais je pourrais probablement l'écrire en 15 minutes, en m'appuyant sur les bibliothèques jpeg pour me dire si elles ne peuvent pas décoder. En traitement par lots (une image, puis la suivante, etc.), il pourrait traiter 1,68 million d’images dans un dossier. De combien de patience auriez-vous besoin? Pour être mesuré.
msw
J'ai résolu mon problème en inversant le processus - c'est-à-dire que j'ai d'abord trié les images par EXIF ​​dans des dossiers, pour ensuite utiliser Shotwell pour les parcourir. Cela me donnait deux choses: premièrement, seules les images entièrement restaurées avaient un fichier EXIF ​​valide; deuxièmement, j'avais des dossiers de taille moyenne à gérer par la suite. J'ai trouvé un excellent script Python pour trier les images dans des dossiers basés sur EXIF ​​appelé " Sortphotos " - il a fallu environ 2 heures pour trier toutes mes images de 168k dans des dossiers.
Andy

Réponses:

0

Vous pouvez créer des vignettes avec imagemagick, un outil de ligne de commande. Vous n'avez donc qu'à écrire un script bash pour traiter l'ensemble. Voici un exemple: http://www.cyberciti.biz/tips/howto-linux-creating-a-image-thumbnails-from-shell-prompt.html ou utilisez mogrify . Une autre alternative dans les commentaires sur le lien cyberciti est d'écrire un script bash sans imagemagick pour créer des fichiers encore plus petits (voir le commentaire de Tim).

De même, vous pouvez les organiser par date de prise de vue exif dans bash. Voici un script pour cela: http://binaryunit.blogspot.com/2007/11/just-simple-script-to-order-your.html Dans les commentaires, il existe une variante qui les renommera également.

J’ai utilisé des scripts bash avec imagemagick avant de renommer et de modifier des photos avant de les publier sur le Web, mais si près que ce soit, il vous faudra beaucoup de temps. Néanmoins, un outil de ligne de commande sera plus rapide et utilisera moins de ressources que d’autres solutions; faire le travail plus rapidement et vous permettre de faire autre chose pendant qu'ils traitent. Si vous le souhaitez, vous pouvez même combiner les deux processus afin de ne pas avoir à y toucher jusqu'à ce que ce soit fait.

Je recommande fortement de tester n'importe quel script sur quelques dizaines d'images avant de l'exécuter sur tous les 168K. Vous devez également créer une copie de sauvegarde de vos données brutes afin de ne pas vous contenter de constater que vous avez commis une erreur et que vous avez détruit vos originaux.

Vous pouvez ensuite les traiter dans n’importe quel logiciel de gestion de photos ou simplement parcourir les dossiers / fichiers dans un gestionnaire de fichiers gui.

Dee Hendrick
la source
Merci. Je voulais d'abord les parcourir pour éliminer celles qui sont inutiles (car elles ne contiendront pas de données EXIF ​​utiles), mais il serait peut-être plus facile de les jeter d'abord dans des dossiers avec un script, puis d'essayer de supprimer celles qui sont mauvais plus ceux sans EXIF.
Andy
OK, je vais devoir bricoler un peu ce script - j'ai trois photos prises en une seconde, je dois ajouter une condition pour ne pas les écraser si cela se produit.
Andy
Vous pouvez facilement créer les vignettes en premier lieu, puis les enregistrer, mais l'un des problèmes que vous aurez est que le pouce est une image distincte de l'original. Vous ne souhaitez donc pas supprimer le pouce et laisser l'original. Vous voudrez peut-être déplacer vos mauvais pouces vers un dossier corbeille, puis l'utiliser comme liste pour la lecture afin de déterminer les images à supprimer. Le script lirait / home / trash / imagethumb1, imagethumb5, imagethumb8, etc. et rm correspondant / home / heapofimages / image1, image5, image8, etc.
Dee Hendrick
En ce qui concerne les noms, il suffit de modifier le script pour ajouter la date EXIF ​​au début du nom de fichier actuel. Cela les mettra en séquence mais conservera les noms de fichiers originaux, qui doivent être uniques, empêchant tout écrasement.
Dee Hendrick