Möglicherweise gibt es bereits ein Tool, das dies erledigt, aber Sie können auch ein einfaches Skript mit einem Screenshot-Tool und Tesseract erstellen, während Sie versuchen, es zu verwenden.
Nehmen Sie als Beispiel dieses Skript (in meinem System habe ich es gespeichert als /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
Und mit Zwischenablage-Unterstützung:
#!/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
Es scrot
nimmt den Bildschirm ein, tesseract
erkennt den Text und cat
zeigt das Ergebnis an. Die Zwischenablage-Version verwendet zusätzlich, xsel
um die Ausgabe in die Zwischenablage zu leiten.
HINWEIS : scrot
, xsel
, imagemagick
und tesseract-ocr
sind standardmäßig nicht installiert , sondern sind von der der Standard - Repositorys zur Verfügung.
Sie können ersetzen können scrot
mit gnome-screenshot
, aber es kann eine Menge Arbeit. In Bezug auf die Ausgabe können Sie alles verwenden, was eine Textdatei lesen kann (mit dem Texteditor öffnen, den erkannten Text als Benachrichtigung anzeigen usw.).
GUI-Version des Skripts
Hier ist eine einfache grafische Version des OCR-Skripts mit einem Dialogfeld zur Sprachauswahl:
#!/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
Abgesehen von den oben aufgeführten Abhängigkeiten müssen Sie den Zenity Fork YAD von der webupd8-PPA installieren , damit das Skript funktioniert.
gnome-screenshot -a
? Auch warum leiten Sie die Ausgabe an tesseract weiter? Wenn ich nicht falsch liege gnome-screenshot speichert das Bild in einer Datei und "druckt" es nicht ...