Có thể đã có một số công cụ thực hiện điều đó, nhưng bạn cũng có thể tạo một tập lệnh đơn giản với một số công cụ chụp màn hình và tesseract, như bạn đang cố gắng sử dụng.
Lấy ví dụ về tập lệnh này (trong hệ thống của tôi, tôi đã lưu nó dưới dạng /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
Và với hỗ trợ 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
Nó sử dụng scrot
để lấy màn hình, tesseract
nhận dạng văn bản và cat
hiển thị kết quả. Phiên bản clipboard sử dụng bổ sung xsel
để dẫn đầu ra vào clipboard.
LƯU Ý : scrot
, xsel
, imagemagick
và tesseract-ocr
không được cài đặt theo mặc định nhưng có sẵn từ các kho mặc định.
Bạn có thể thay thế scrot
bằng gnome-screenshot
, nhưng nó có thể mất rất nhiều công việc. Về đầu ra, bạn có thể sử dụng bất cứ thứ gì có thể đọc tệp văn bản (mở bằng Trình chỉnh sửa văn bản, hiển thị văn bản được nhận dạng dưới dạng thông báo, v.v.).
Phiên bản GUI của tập lệnh
Đây là phiên bản đồ họa đơn giản của tập lệnh OCR bao gồm hộp thoại chọn ngôn ngữ:
#!/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
Ngoài các phụ thuộc được liệt kê ở trên, bạn sẽ cần cài đặt ZenAD fork YAD từ webupd8 PPA để làm cho tập lệnh hoạt động.
gnome-screenshot -a
? Ngoài ra tại sao bạn đường ống đầu ra để tesseract? Nếu tôi không sai ảnh chụp màn hình gnome sẽ lưu ảnh trên một tệp và không "in" nó ...