Comment découper automatiquement des images numérisées à l'aide d'imagemagick ou de graphicsmagick?

11

J'ai quelques images numérisées au format * .jpg. Ils sont numérisés à l'aide d'un scanner A4, en niveaux de gris ou en couleur. Les pages numérisées ont des dimensions très différentes - certaines A5, certaines A6, certaines cartes de visite, etc. Le capot du scanner est blanc.

Je veux couper toutes les bordures blanches en utilisant imagemagick ou graphicsmagick (ces outils, parce que je veux les traiter par lots). Je comprends que la bordure est numérisée, donc pas parfaitement blanche et que cela peut parfois provoquer un recadrage trop ou trop peu de l'image. Cependant, en utilisant le paramètre Trim avec fuzz, j'obtiens toujours une image trop grande. Par exemple, en utilisant l'image de la carte de visite ci-dessous:

gm.exe convert -crop -fuzz 50% 01-pixelated.jpg 01-pixelated-gm.jpg

produit une image qui n'est toujours pas coupée de la droite et du bas. Le résultat est le même quel que soit le nombre que je mets au paramètre -fuzz.

Pourriez-vous s'il vous plaît le tester et conseiller la ligne de commande qui fera le travail?

entrez la description de l'image ici

Arek
la source
Voulez-vous rogner directement sur les bords du texte / contenu ou sur les bords de la feuille de papier, quelle que soit sa taille (A4, A5, A6)? Dans votre exemple, la limite inférieure de la carte n'est pas visible du tout - je ne sais pas comment vous vous attendez à la détecter.
willus
Je veux qu'il soit coupé aux bords du contenu.
Arek
2
askubuntu.com/questions/97695/… || stackoverflow.com/questions/14098965/…
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功

Réponses:

9

Dans ImageMagick, essayez cette commande:

convert input.jpg -fuzz 80% -trim +repage output.jpg

Je l'ai testé avec ImageMagick 6.4.4 Q16 et, à partir de l'image que vous avez liée, j'ai obtenu cette image de sortie:

production

Andrea
la source
si évident, j'ai fait un décalage entre -trim et -crop. Je vous remercie!
Arek