Capture2Text - Альтернатива (Текст получения с Экрана Непосредственно) в Помощнике Ubuntu

Я нашел немного подобных вопросов в этом сайте, но не мог завершить процесс.

Из Ответа того, Как может мгновенно извлечь текст из экранной области с помощью инструментов OCR? и Как я могу использовать OCR на частичном снимке экрана для получения текста?

Сначала я установил зависимости

sudo apt-get install tesseract-ocr
sudo apt-get install imagemagick
sudo apt-get install scrot
sudo apt-get install xsel

Затем я вставил следующий сценарий /home/blueray/Documents/Translate/screen_ts.sh

#!/bin/bash 
# Dependencies: tesseract-ocr imagemagick scrot xsel

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

Обратите внимание на то, что я удалил

select tesseract_lang in eng rus equ ;do break;done
# Quick language menu, add more if you need other languages.

В надежде, что это только рассмотрит английский язык. Сообщите мне если дело обстоит не так.

Теперь, когда я поместил

bash /home/blueray/Documents/Translate/screen_ts.sh

Это работает, как я хотел.

В окнах, с Capture2Text, я раньше использовал Win+Q для получения части экрана как текст. Так, я проверил, Как я устанавливаю пользовательское сочетание клавиш для управления объемом?

Я перешел в Menu-> Searched for Keyboard Shortcuts -> Click

enter image description here

  1. Затем я нажал Add
  2. Имя: Capture2Text
  3. Команда: bash /home/blueray/Documents/Translate/screen_ts.sh
  4. Нажатый Apply
  5. Shortcut, на который нажимают, справа.
  6. Нажатый WinQ

Теперь, когда я нажимаю WinQ, ничего не происходит. Что я делаю неправильно?

3
задан 20 May 2018 в 07:41

3 ответа

Вам не нужен "scrot". Imagemagick (который обеспечил "mogrify") может сделать задание снимка экрана. Вы также не должны сохранять промежуточный образ, поскольку "tesseract" может принять изображение на стандартном входе.

вышеупомянутое Как таковое упрощает до...

convert x: -modulate 100,0 -resize 400% -set density 300 png:- |
  tesseract stdin stdout | xsel -bi

Однако я также добавил следующее к своей версии сценария, для появления текста на экране, таким образом, можно проверить его.

xsel -po | xless - &

, Конечно, tesseract мог использовать некоторые улучшения для некоторых шрифтов! Например, 'f's в некоторых шрифтах имеет маленький рычаг, который заставляет tesseract думать, что они - 'P! Arrghhhh...

РЕДАКТИРОВАНИЕ: Полный сценарий, который я использую, расположен в...

http://www.ict.griffith.edu.au/anthony/software/#capture_ocr

я связываю это с 'горячей клавишей' (Метапечать) с помощью моего менеджера окон (openbox), таким образом, я могу использовать его в любое время.

, Если Вы не можете использовать горячую клавишу и должны раскрыть часть экрана, содержащего текст, можно всегда запускать его с задержкой...

сон 5; capture_ocr

Обладает

2
ответ дан 1 December 2019 в 16:52

В пользовательском ярлыке я изменил команду на

mate-terminal -e "/home/blueray/Documents/Translate/screen_ts.sh"

Теперь она работает. Но проблема в том, когда я нажимаю Win+Q часть экрана крышки терминала. Итак, я установил xdotool

sudo apt-get update
sudo apt-get install xdotool

Добавил xdotool windowminimize $(xdotool getactivewindow) в мой файл screen_ts.sh.

Итак, теперь скрипт выглядит как

#!/bin/bash 
# Dependencies: tesseract-ocr imagemagick scrot xsel

xdotool windowminimize $(xdotool getactivewindow)

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
0
ответ дан 1 December 2019 в 16:52

Мне пришлось подправить скрипт @anthony, чтобы он работал на моей машине (Kubuntu 18.04):

Вместо строки convert я использовал:

import -resize 300% +dither png:- |

Кроме того, я удалил завершающий знак минус - из последней строки, поэтому:

xsel -ob | $XPAGER

Отлично работает.

1
ответ дан 22 May 2020 в 13:49

Другие вопросы по тегам:

Похожие вопросы: