5 votes

Comment numériser une image et la recadrer automatiquement en fonction du contenu numérisé à l'aide d'un outil en ligne de commande linux ?

Je dois scanner un grand nombre de petits objets de taille similaire, mais pas exactement la même.

Ce que j'ai pensé faire, c'est.. :

Lancez un outil de ligne de commande Linux avec le nom du fichier comme paramètre, qui lance le scanner jusqu'à environ 10 % de la taille totale du scanner et recadre l'image sur le contenu qui n'est pas blanc (un carré conviendrait).

Quelqu'un sait-il si cela est possible et quand ? Merci d'avance !

3voto

Mohsin Points 11

Ce qu'il vous faut, c'est convert de imagemagick . Première installation imagemagick pour votre distribution. Sur les systèmes dérivés de Debian, exécutez la commande suivante :

sudo apt-get install imagemagick

Si vous souhaitez simplement supprimer les espaces blancs, procédez comme suit :

for image in $(find . -name "*png" | sed 's/.png//'); do convert -trim $image.png $image_trimmed.png; done

Cela suppose que vos images sont des PNG, si ce n'est pas le cas, modifiez la ligne ci-dessus en conséquence.

Si vous avez besoin d'un redimensionnement plus sophistiqué, jetez un coup d'œil à la rubrique documentation imagemagick Il est possible de faire à peu près tout ce que l'on peut imaginer avec.

Ainsi, votre flux de travail réel serait le suivant :

  1. Numérisez vos images et enregistrez-les dans le même dossier.
  2. Exécutez la commande que j'ai donnée ci-dessus dans ce dossier.

2voto

chelusly Points 11

Essayez d'ajouter -fuzz :

-fuzz *distance*

Les couleurs situées à l'intérieur de cette distance sont considérées comme égales.

for image in $(find . -name "*png" | sed 's/.png//');
do convert -fuzz 255 -trim $image.png $image_trimmed.png; done

2voto

Anthony O. Points 250

En tant que a déclaré ici en lisant cet article de blog J'ai trouvé ce bash script qui utilise ImageMagick : téléchargez-la, chmod +x puis j'ai réussi à faire pivoter et recadrer mes photos numérisées avec la commande suivante :

multicrop -c 50,50 -f 40 -d 50 scanned_photo_in.jpg extracted_photo_out.jpg
  • -c 50,50 permet de détecter la couleur d'arrière-plan du pixel situé à 50,50 (la valeur par défaut est 0,0).
  • -f 40 est la "valeur fuzz pour la séparation de la couleur de fond exprimée en pourcentage" (la valeur par défaut est 10)
  • -d 50 écarte toute région dont la largeur ou la hauteur est inférieure à cette taille (par défaut, aucune région n'est écartée).

Voici un script bash script pour exécuter cette commande pour tous les fichiers jpg dans le dossier courant et mettre les photos extraites dans extracted sous-dossier :

mkdir extracted; for PHOTO in *.jpg; do multicrop -c 50,50 -f 40 -d 50 $PHOTO extracted/$PHOTO; done

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X