Forse c'è già qualche strumento che lo fa, ma puoi anche creare un semplice script con alcuni strumenti di screenshot e tesseract, mentre stai cercando di usare.
Prendi ad esempio questo script (nel mio sistema l'ho salvato come /usr/local/bin/screen_ts
):
#!/bin/bash
# Dependencies: tesseract-ocr imagemagick scrot
select tesseract_lang in eng rus equ ;do break;done
# Quick language menu, add more if you need other languages.
SCR_IMG=`mktemp`
trap "rm $SCR_IMG*" EXIT
scrot -s $SCR_IMG.png -q 100
# increase quality with option -q from default 75 to 100
# Typo "$SCR_IMG.png000" does not continue with same name.
mogrify -modulate 100,0 -resize 400% $SCR_IMG.png
#should increase detection rate
tesseract $SCR_IMG.png $SCR_IMG &> /dev/null
cat $SCR_IMG.txt
exit
E con il supporto degli appunti:
#!/bin/bash
# Dependencies: tesseract-ocr imagemagick scrot xsel
select tesseract_lang in eng rus equ ;do break;done
# quick language menu, add more if you need other languages.
SCR_IMG=`mktemp`
trap "rm $SCR_IMG*" EXIT
scrot -s $SCR_IMG.png -q 100
# increase image quality with option -q from default 75 to 100
mogrify -modulate 100,0 -resize 400% $SCR_IMG.png
#should increase detection rate
tesseract $SCR_IMG.png $SCR_IMG &> /dev/null
cat $SCR_IMG.txt | xsel -bi
exit
Usa scrot
per prendere lo schermo, tesseract
riconoscere il testo e cat
visualizzare il risultato. La versione degli Appunti utilizza inoltre xsel
per convogliare l'output negli Appunti.
NOTA : scrot
, xsel
, imagemagick
e tesseract-ocr
non sono installati di default, ma sono disponibili presso i repository di default.
Potresti essere in grado di sostituirlo scrot
con gnome-screenshot
, ma potrebbe richiedere molto lavoro. Per quanto riguarda l'output è possibile utilizzare qualsiasi cosa in grado di leggere un file di testo (aprire con l'Editor di testo, mostrare il testo riconosciuto come notifica, ecc.).
Versione GUI dello script
Ecco una semplice versione grafica dello script OCR che include una finestra di selezione della lingua:
#!/bin/bash
# DEPENDENCIES: tesseract-ocr imagemagick scrot yad
# AUTHOR: Glutanimate 2013 (http://askubuntu.com/users/81372/)
# NAME: ScreenOCR
# LICENSE: GNU GPLv3
#
# BASED ON: OCR script by Salem (http://askubuntu.com/a/280713/81372)
TITLE=ScreenOCR # set yad variables
ICON=gnome-screenshot
# - tesseract won't work if LC_ALL is unset so we set it here
# - you might want to delete or modify this line if you
# have a different locale:
export LC_ALL=en_US.UTF-8
# language selection dialog
LANG=$(yad \
--width 300 --entry --title "$TITLE" \
--image=$ICON \
--window-icon=$ICON \
--button="ok:0" --button="cancel:1" \
--text "Select language:" \
--entry-text \
"eng" "ita" "deu")
# - You can modify the list of available languages by editing the line above
# - Make sure to use the same ISO codes tesseract does (man tesseract for details)
# - Languages will of course only work if you have installed their respective
# language packs (https://code.google.com/p/tesseract-ocr/downloads/list)
RET=$? # check return status
if [ "$RET" = 252 ] || [ "$RET" = 1 ] # WM-Close or "cancel"
then
exit
fi
echo "Language set to $LANG"
SCR_IMG=`mktemp` # create tempfile
trap "rm $SCR_IMG*" EXIT # make sure tempfiles get deleted afterwards
scrot -s $SCR_IMG.png -q 100 #take screenshot of area
mogrify -modulate 100,0 -resize 400% $SCR_IMG.png # postprocess to prepare for OCR
tesseract -l $LANG $SCR_IMG.png $SCR_IMG # OCR in given language
cat $SCR_IMG | xsel -bi # pass to clipboard
exit
A parte le dipendenze sopra elencate, per far funzionare lo script è necessario installare il fork YAD Zenity dal PPA webupd8 .
gnome-screenshot -a
? Inoltre, perché convoglia l'output su tesseract? Se non sbaglio gnome-screenshot salva l'immagine su un file e non lo "stampa" ...