어쩌면 이미 그렇게하는 도구가있을 수도 있지만 사용하려고 할 때 스크린 샷 도구와 tesseract를 사용하여 간단한 스크립트를 만들 수도 있습니다.
이 스크립트를 예로 들어 (내 시스템에서으로 저장했습니다 /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
그리고 클립 보드 지원 :
#!/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
그것은 사용 scrot
, 화면을 위해 tesseract
텍스트를 인식하고 cat
결과를 표시 할 수 있습니다. 클립 보드 버전은 추가 xsel
로 출력을 클립 보드에 파이프하는 데 사용 됩니다.
참고 : scrot
, xsel
, imagemagick
및 tesseract-ocr
기본적으로 설치하지만, 기본 저장소에서 사용할 수 없습니다.
당신은 대체 할 수 있습니다 scrot
와 함께 gnome-screenshot
,하지만 많은 일이 걸릴 수 있습니다. 출력과 관련하여 텍스트 파일을 읽을 수있는 모든 것을 사용할 수 있습니다 (텍스트 편집기를 사용하여 인식 된 텍스트를 알림으로 표시 등).
스크립트의 GUI 버전
언어 선택 대화 상자를 포함한 간단한 그래픽 버전의 OCR 스크립트는 다음과 같습니다.
#!/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
위에 나열된 종속성 외에도 스크립트를 작동 시키려면 webupd8 PPA에서 Zenity fork YAD 를 설치해야합니다 .
gnome-screenshot -a
합니까? 또한 왜 출력을 tesseract로 파이프합니까? 내가 gnome-screenshot이 틀린 그림을 파일에 저장하고 "인쇄"하지 않으면 ...