web-dev-qa-db-fra.com

Comment utiliser l'OCR sur une capture d'écran partielle pour obtenir du texte?

Quand j’utilisais encore Windows, j’aimais utiliser le programme OCR capture2text pour récupérer les kanji japonais dans les mangas et les transférer dans jisho.org. Je me demandais comment obtenir les mêmes fonctionnalités sous Ubuntu. À savoir:

  1. Prenez une capture d'écran partielle en appuyant sur la touche de raccourci désignée (style de clic/glissement).
  2. Traitez l'image via un moteur d'OCR.
  3. Exporter le résultat dans le presse-papier.
3
TakingItCasual

Basé sur ce script (le second), j'ai réduit le script à ceci:

#!/bin/bash 
# Dependencies: tesseract-ocr imagemagick gnome-screenshot xclip

SCR="/home/takingitcasual/Documents/Translate/temp"

gnome-screenshot -a -f $SCR.png

mogrify -modulate 100,0 -resize 400% $SCR.png 
#should increase detection rate

tesseract $SCR.png $SCR -psm 10 -l jpn
cat $SCR.txt | xclip -selection clipboard
#you can only scan one character at a time

exit

Quelques objectifs que j'avais avec le fichier modifié:

  1. Suppression de la nécessité de Sudo (pour permettre une liaison facile par raccourci clavier)
  2. Remplacement de scrot (la façon dont gnome-screenshot fonctionne est beaucoup plus agréable, OMI)
  3. Simplifier le script pour quelque chose que je peux plus facilement comprendre (suppression des fichiers temporaires)
  4. Limiter la reconnaissance à un caractère à la fois. (la reconnaissance était abominable sans ce "-psm 10", et Tesseract continuait également à générer des erreurs "page vide")

Deux autres choses que j'ai faites étaient:

chmod a+x /home/takingitcasual/Documents/Translate/

et définir les autorisations de fichiers temporaires pour lire/écrire pour tous. Je ne sais pas si c'était redondant de faire les deux.

La dernière chose donnait la commande bash

bash /home/takingitcasual/Documents/Translate/screen_ts.sh

un raccourci via this .

Si quelqu'un a des suggestions sur la modification du script ou quoi que ce soit d'autre, j'aimerais l'entendre. (Je n'ai aucune expérience en script, donc je suis sûr que cela peut être amélioré.)

3
TakingItCasual