Corriger les images numérisées avec ImageMagick


  • Français


  • Il y a des années, en fouillant dans le contenu d’une étagère dans une librairie d’occasion, je suis tombé sur un livret intitulé “Résumé des commandes système UNIX pour Berkeley 4.2 et 4.3 BSD”, publié par Specialized Systems Consultants. Je l’ai acheté comme objet de curiosité car il avait près de 20 ans mais était encore largement applicable à Linux et BSD modernes.

    Cela m’amusait alors et maintenant. Un livret écrit en 1986 était encore largement pertinent en 2016, tandis que les livres sur la même étagère à propos d’un système d’exploitation propriétaire ne valaient pas le papier sur lequel ils étaient imprimés. (Pensez-y : quelle est la technologie tu pensez-vous qu’il va survivre à une apocalypse zombie ?) J’ai le livret sur ma propre étagère depuis plusieurs années maintenant, mais il m’est venu à l’esprit que cela valait probablement la peine de faire un peu de préservation numérique de cet artefact, alors j’ai décidé de numériser le livret pour créer un livre électronique CBZ.

    La numérisation était facile, bien que chronophage, avec Skanlite. Après avoir terminé, cependant, j’ai découvert que certaines pages n’étaient pas tout à fait de niveau.

    (Seth Kenlon, CC BY-SA 4.0)

    En impression, cela s’appelle un problème d’alignement, ce qui signifie que la position de ce qui est imprimé n’est pas correctement orientée sur la page.

    Plus d’alternatives open source

    ImageMagick

    ImageMagick est un éditeur graphique non interactif basé sur un terminal. Il peut sembler contre-intuitif d’essayer d’éditer un graphique dans un environnement sans graphique comme un terminal texte uniquement, mais c’est en fait très courant. Par exemple, lorsque vous téléchargez une image à utiliser comme photo de profil dans une application Web, il est probable qu’un script sur le serveur de l’application traite votre image à l’aide d’ImageMagick ou de ses bibliothèques. L’avantage d’un éditeur non interactif est que vous pouvez formuler ce qui doit être fait sur un échantillon d’image, puis appliquer ces effets à des centaines d’autres images en appuyant sur un bouton.

    ImageMagick est généralement aussi performant que n’importe quel éditeur graphique, tant que vous prenez le temps de découvrir ses nombreuses fonctions et comment les combiner pour obtenir les effets souhaités. Dans ce cas, je veux faire pivoter des pages qui sont de travers. Après avoir parcouru la documentation d’ImageMagick, j’ai découvert que le terme ImageMagick pour la solution dont j’avais besoin s’appelait désalignement. Aligner votre terminologie avec la terminologie de quelqu’un d’autre est un défi dans tout ce que vous ne connaissez pas déjà, donc lorsque vous approchez ImageMagick (ou quoi que ce soit), gardez à l’esprit que le mot vous avez décidé décrit un problème ou une solution peut ne pas être le même mot utilisé par quelqu’un d’autre.

    Pour redresser une image avec du texte tordu à l’aide d’ImageMagick :

    $ convert page_0052.webp -deskew 25% fix_0052.webp

    La -deskew L’option représente le seuil d’inclinaison acceptable. Une inclinaison est déterminée en traçant des pics et des creux d’objets qui semblent être des lettres. Selon la torsion de votre analyse, vous aurez peut-être besoin d’un seuil supérieur ou inférieur à 25 %. Je suis allé jusqu’à 80 %, et jusqu’à présent, rien de moins de 25 % n’a eu d’effet.

    Voici le résultat :

    (Seth Kenlon, CC BY-SA 4.0)

    Fixé! L’application de ceci aux 55 pages restantes du document a corrigé les pages biaisées sans rien faire pour les pages qui étaient déjà droites. En d’autres termes, il était sûr d’exécuter cette commande sur des pages qui ne nécessitaient aucun ajustement, grâce à mon paramètre de seuil.

    Recadrer une image avec ImageMagick

    Après avoir corrigé un biais, et parce que j’ai numérisé plus de chaque page que nécessaire de toute façon pour éviter de couper accidentellement des mots, j’ai décidé qu’il était logique de recadrer mes pages corrigées. J’étais heureux de garder un peu d’espace autour des marges, mais pas autant que j’en avais. Je utilise le crop fonction d’ImageMagick assez souvent pour les images sur ce même site Web, donc je connaissais l’option. Cependant, j’avais besoin de déterminer comment recadrer chaque page.

    Tout d’abord, j’avais besoin de la taille de l’image :

    $ identify fixed_0052.webp
    WEBP 1128x2593 1128x2593+0+0 8-bit sRGB 114732B 0.020u 0:00.021

    Connaissant la taille, j’ai pu faire quelques estimations sur le nombre de pixels que je pouvais supporter de perdre. Après quelques essais, j’en suis arrivé à ceci :

    convert fix_0052.webp -gravity Center -crop 950x2450+0+0 crop_0052.webp

    Ce n’est pas un ajustement exact, mais cela s’est avéré important lorsque je l’ai appliqué à d’autres images du livret. Les pages variaient dans le contenu et le placement du scanner ici et là, j’étais donc heureux de donner à chacun un peu de répit.

    Voici l’image corrigée et recadrée :

    (Seth Kenlon, CC BY-SA 4.0)

    Édition d’images par lots avec open source

    La beauté d’ImageMagick est qu’une fois que vous avez trouvé la formule pour réparer votre image, vous pouvez appliquer ce correctif à toutes les images nécessitant le même correctif. je fais ça avec Parallèle GNU, qui utilise tous mes cœurs de processeur pour terminer la correction d’image sur des centaines de pages. Cela ne prend pas longtemps et les résultats parlent d’eux-mêmes. Plus important encore, j’ai une archive numérique d’un artefact amusant de l’histoire d’UNIX.

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code