- TextSnatcher est une application OCR pour Linux conçue pour copier rapidement le texte contenu dans des images, en glissant sur l’image pour effectuer la reconnaissance de caractères puis coller le résultat
- Ses fonctions clés sont la prise en charge multilingue, la copie de texte depuis une image, le glisser sur n’importe quelle image puis le collage, ainsi qu’une utilisation rapide et simple
- Pour la reconnaissance de caractères, l’application utilise Tesseract OCR 4.x et fournit aussi des liens vers la documentation Tesseract et le projet Tesseract
- La distribution se fait via Flathub et l’AppCenter d’elementary OS ; pour compiler soi-même, il faut suivre une procédure d’installation basée sur Meson et Ninja
- L’exécution nécessite scrot, tesseract-ocr et les données linguistiques de Tesseract ; le projet indique actuellement qu’il reviendra le mois prochain avec des mises à jour et des corrections
Ce que fait TextSnatcher
- TextSnatcher est une application Linux qui permet de copier du texte depuis des images et d’effectuer des opérations OCR en quelques secondes
- L’utilisateur peut glisser sur une image pour copier le texte puis le coller
- Fonctionnalités proposées :
-
Prise en charge multilingue
- Copier du texte depuis une image par glisser
- Glisser sur n’importe quelle image puis coller
- Utilisation rapide et simple
-
Moteur OCR et projets associés
- TextSnatcher utilise Tesseract OCR 4.x pour la reconnaissance de caractères
- Les ressources associées incluent la documentation Tesseract et le projet Tesseract
Installation et canaux de distribution
- L’application peut être téléchargée sur Flathub
- Les utilisateurs d’elementary OS peuvent l’obtenir via AppCenter
Dépendances et compilation
- Dépendances d’exécution nécessaires :
- scrot
- tesseract-ocr
- Données linguistiques Tesseract
- Des liens vers les dépôts Arch et Debian sont fournis
- Dépendances de compilation nécessaires :
- granite
- gtk+-3.0
- gobject-2.0
- gdk-pixbuf-2.0
- libhandy-1
- libportal-0.5
- La compilation et l’exécution manuelles consistent à cloner le dépôt, créer un répertoire de build Meson, installer avec Ninja, puis lancer
com.github.rajsolai.textsnatcher
État du développement et source
- Le projet inclut un badge indiquant qu’il a été développé en Vala
- Le README précise que l’auteur collecte actuellement des fonds pour acheter un PC Linux et que le projet devrait revenir le mois prochain avec des mises à jour et des corrections
- Les sources d’inspiration mentionnées sont le README de Planner, la structure applicative de Develop et l’application macOS TextSniper
1 commentaires
Commentaires Hacker News
J’utilise un script comme celui de Dibby053, récupéré sur Stack Overflow puis légèrement modifié pour fonctionner avec KDE/GNOME et Wayland/X11, avec affichage de l’état actuel via des notifications
Je n’ai pas encore testé moi-même la détection X11/Wayland, mais n’hésitez pas à l’essayer et à faire un retour
spectacleen mode arrière-plan, afin que la fenêtre ne ressurgisse pas après la capture d’écranIl enchaîne
grim,slurp,mogrify,tesseractetwl-copy, puis utilisefuzzelpour choisir la langue de l’OCROn choisit la langue avec
dmenu, puis on traite avecmaim -us | tesseract --dpi 145 -l eng+${lang} - - | xsel -bihttps://news.ycombinator.com/item?id=33704483#33705272
trap "cleanup '$SCR_IMG'" EXIT, mais ici ce n’est pas totalement erronéLa commande passée à
trapest en général évaluée, donc l’expansion des variables a lieu, ettrap 'cleanup "$SCR_IMG"' EXITest plus sûrAvec une version récente de Bash,
trap "cleanup ${SCR_IMG@Q}" EXITest aussi une optionbash -c 'flameshot gui -s -r | tesseract - - | gxmessage -title "Decoded Data" -fn "Consolas 12" -wrap -geometry 640x480 -file -'à un raccourciEn appuyant sur Super+O puis en faisant glisser sur la zone à OCRiser, le texte capturé s’affiche immédiatement dans une boîte de dialogue
J’ai un script copié quelque part il y a longtemps qui fait ça plutôt bien
Il capture une zone avec
scrot, applique un prétraitement en noir et blanc et en agrandissement avecmogrify, extrait le texte avectesseract, le place dans le presse-papiers avecxselet affiche même une notificationscrotGrâce à l’option
--nodrag, quand on sélectionne une zone au trackpad, il suffit de cliquer une fois, déplacer le curseur, puis cliquer à nouveau, ce qui est plus pratiqueDans
maim -s --nodrag --quality=10 $IMG.png,10correspond à100dansscrotLe prétraitement par agrandissement ne m’a pas semblé faire une grande différence, et je ne sais pas quel type de prétraitement améliorerait vraiment les choses
Je me demande si TextSnatcher apporte quelque chose de mieux, mais la page GitHub reste floue
Désolé pour mes collègues qui vivent entre Unix et Windows
trap "rm $IMG*" EXIT, mieux vaut consulter https://www.shellcheck.net/wiki/SC2064Il vaut mieux utiliser
mktemp -dpuis supprimer récursivement le répertoireLier un script à un raccourci clavier est bien mieux que devoir cliquer dans une fenêtre avec des boutons
Pour les collègues simples mortels qui utilisent Windows, cette fonction existe aussi dans l’extension officielle Microsoft PowerToys
Elle a aussi été intégrée à l’outil de capture par défaut, mais personnellement je trouve le raccourci clavier unique de PowerToys plus pratique
https://github.com/microsoft/PowerToys
Il suffit d’appuyer sur WIN+SHIFT+S et, si l’icône « Text actions » n’apparaît pas, de mettre à jour vers la dernière version via le Windows Store
Je me demande depuis longtemps si Tesseract est vraiment encore la meilleure solution de pointe dans ce domaine
Intuitivement, ça semble assez limité, et vu les progrès de la vision par ordinateur vers 2019, j’avais l’impression que la reconnaissance de texte aurait déjà dû être un problème pratiquement résolu
On dirait qu’elle devrait faire mieux qu’un humain, et pourtant elle ne parvenait même pas à convertir correctement des scans de reçus en basse résolution, surtout dès qu’il ne s’agissait plus d’anglais
C’est peut-être simplement moi qui l’utilise mal
Je serais curieux de savoir plus précisément comment tu l’utilises
Je vois Tesseract être mentionné de plus en plus souvent
Quand je l’avais essayé sur des articles scientifiques scannés il y a 10 à 15 ans, les résultats étaient décevants, et la post-correction manuelle n’était pas tellement moins lourde que de tout retaper soi-même
Du coup, pour moi, Tesseract est devenu synonyme de « ne vaut pas la peine d’essayer », mais ça a peut-être progressé avec le temps, donc ça vaudrait le coup de réessayer
Pour la reconnaissance générique, y compris avec des polices bizarres ou une mauvaise qualité d’image, EasyOCR m’a donné de bien meilleurs résultats
Ça utilise Tesseract en interne et c’est vraiment excellent
Il y a 15 ans, il fallait faire pas mal de prétraitement pour obtenir un résultat simplement moins mauvais, alors qu’aujourd’hui j’obtiens de bons résultats sans prétraitement
Je l’ai essayé moi-même, et ça fonctionne plutôt bien.
Comme c’est une appli Flatpak, il faut un portail de bureau pour un fonctionnement complet, mais avec une configuration
xdg-desktop-portal-wlrexistante, ça a bien marché sans réglage supplémentaire.Dans un environnement X11 ou Wayland avec une configuration
xdg-desktop-portalprenant en charge la Screenshot API, ça devrait fonctionner sans problème particulier.Les résultats sont variables, mais pas mauvais, et sur du texte proprement lisible il n’y a guère que des problèmes d’espacement ou quelques erreurs occasionnelles, donc ça peut être utile pour copier du texte depuis des choses comme des boîtes de dialogue d’erreur.
Cela dit, sous Linux, le texte des boîtes de dialogue d’erreur est souvent sélectionnable de toute façon, et la MessageBox standard de Windows réagit à Ctrl+C.
J’utilise Frog comme application similaire, et ça me réussit très bien.
https://getfrog.app
.deb, pas de brew non plus.Sur macOS, il existe un utilitaire qui fait plus que simplement ouvrir un document dans Preview et tenter de sélectionner le texte.
https://github.com/schappim/macOCR
J’aime bien l’auteur.
Ensuite, il suffit de supprimer l’image avec la corbeille en haut à droite, et Cmd-A fonctionne aussi.
Un exemple utilisé dans ce commentaire est ici : https://imgur.com/a/q0NvcS6
Sur iOS, j’utilise une solution similaire avec un raccourci relié au bouton Action.
Certaines apps ne facilitent pas la copie de texte, ou bien le texte est en langue étrangère ; je prends donc une capture d’écran, j’en extrais le texte, je détecte automatiquement la langue source pour la traduire en anglais, puis j’affiche l’original et la traduction dans Quick View afin de pouvoir les sélectionner et les copier.
Vous pouvez tester un exemple d’implémentation ici : https://www.icloud.com/shortcuts/f420d24e4960415da1a43f230abfce39
À noter aussi que sur les versions récentes d’iOS, on peut ouvrir une photo dans l’app Photos et sélectionner puis copier directement le texte dans l’image avec le doigt.
Je l’ai utilisé depuis la feuille de partage après avoir appuyé sur le bouton de partage de l’image, et ça a fonctionné, mais si l’image est déjà transmise à ce stade, l’étape de capture d’écran fait doublon.
On dit que c’est « pour Linux Desktop », mais c’est du Flatpak, et toutes les distributions Linux ne fournissent pas Flatpak par défaut.
Je vais l’essayer une fois dans une machine virtuelle Fedora ; j’ai déjà vu beaucoup d’outils de ce genre, et la plupart s’appuient sur Tesseract.
Sur des images grossières ou bruitées, ou quand le texte est courbé ou incliné, ça échoue largement, et ça ne résout pas les CAPTCHA.
https://tesseract-ocr.github.io/tessdoc/Home.html
Plus précisément, cela veut surtout dire que l’auteur n’a pas créé de paquet pour votre distribution, et que personne d’autre n’a pris le temps ni la motivation de le packager.
Le mainteneur que vous cherchez, ça pourrait bien être vous.
S’il n’y avait qu’un
.deb, on pourrait dire que ça ne marche pas ailleurs que sur Ubuntu/Debian, et ce serait un inconvénient bien plus grand.