Mungkin sudah ada beberapa alat yang melakukan itu, tetapi Anda juga dapat membuat skrip sederhana dengan beberapa alat tangkapan layar dan tesseract, saat Anda mencoba menggunakannya.
Ambil sebagai contoh skrip ini (di sistem saya saya menyimpannya sebagai /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
Dan dengan dukungan clipboard:
#!/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
Ini digunakan scrot
untuk mengambil layar, tesseract
untuk mengenali teks dan cat
untuk menampilkan hasilnya. Versi clipboard juga digunakan xsel
untuk menyalurkan output ke clipboard.
CATATAN : scrot
, xsel
, imagemagick
dan tesseract-ocr
tidak diinstal secara default, tetapi tersedia dari repositori default.
Anda mungkin bisa mengganti scrot
dengan gnome-screenshot
, tetapi mungkin butuh banyak pekerjaan. Mengenai output, Anda dapat menggunakan apa pun yang dapat membaca file teks (buka dengan Editor Teks, tampilkan teks yang dikenali sebagai pemberitahuan, dll).
Versi skrip GUI
Berikut ini adalah versi grafis sederhana dari skrip OCR termasuk dialog pemilihan bahasa:
#!/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
Selain dependensi yang tercantum di atas, Anda perlu menginstal garpu Zenity YAD dari PPA webupd8 untuk membuat skrip berfungsi.
gnome-screenshot -a
? Juga mengapa Anda menyalurkan output ke tesseract? Jika saya tidak salah, gnome-screenshot menyimpan gambar pada file, dan tidak "mencetak" itu ...