Tal vez ya haya alguna herramienta que lo haga, pero también puede crear un script simple con alguna herramienta de captura de pantalla y tesseract, ya que está tratando de usar.
Tome como ejemplo este script (en mi sistema lo guardé como /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
Y con soporte para portapapeles:
#!/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
Se utiliza scrot
para tomar la pantalla, tesseract
reconocer el texto y cat
mostrar el resultado. La versión del portapapeles también utiliza xsel
para canalizar la salida en el portapapeles.
NOTA : scrot
, xsel
, imagemagick
y tesseract-ocr
no están instalados por defecto, pero están disponibles en los repositorios por defecto.
Usted puede ser capaz de reemplazar scrot
con gnome-screenshot
, pero puede tomar un montón de trabajo. Con respecto a la salida, puede usar cualquier cosa que pueda leer un archivo de texto (abrir con el Editor de texto, mostrar el texto reconocido como una notificación, etc.).
Versión GUI del script
Aquí hay una versión gráfica simple del script OCR que incluye un diálogo de selección de idioma:
#!/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
Además de las dependencias enumeradas anteriormente, deberá instalar Zenity fork YAD desde el PPA webupd8 para que el script funcione.
gnome-screenshot -a
? ¿También por qué canaliza la salida a tesseract? Si no me equivoco, gnome-screenshot guarda la imagen en un archivo y no la "imprime" ...