Как использовать OCR для частичного захвата экрана для получения текста?

Когда я все еще пользовался Windows, мне нравилось использовать программу capture2text OCR для захвата японского кандзи из манги и сбрасывать их на jisho.org, и мне было интересно, как я могу получить ту же функциональность на Ubuntu. А именно:

  1. Сделайте частичный снимок экрана, нажав на назначенную горячую клавишу (нажмите + стиль перетаскивания).
  2. Обработать изображение через движок OCR.
  3. Выведите результат в буфер обмена.

Основанный на этом сценарии (второй), я сократил сценарий до этого:

#!/bin/bash # Dependencies: tesseract-ocr imagemagick gnome-screenshot xclip SCR="/home/takingitcasual/Documents/Translate/temp" gnome-screenshot -a -f $SCR.png mogrify -modulate 100,0 -resize 400% $SCR.png #should increase detection rate tesseract $SCR.png $SCR -psm 10 -l jpn cat $SCR.txt | xclip -selection clipboard #you can only scan one character at a time exit 

Некоторые цели, которые у меня были с измененным файлом:

  1. Удаление необходимости в sudo (чтобы обеспечить удобную привязку горячих клавиш)
  2. Замена scrot (способ работы gnome-screenshot выглядит намного лучше IMO)
  3. Упростите скрипт тому, что я могу более легко понять (удаление временных файлов)
  4. Ограничить распознавание по одному символу за раз. (признание было ужасно без этого «-psm 10», и Tesseract продолжал метать ошибки «пустой страницы»)

Еще две вещи, которые я сделал:

 chmod a+x /home/takingitcasual/Documents/Translate/ 

и установление разрешений временных файлов для чтения / записи для всех. Не уверен, было ли излишне делать то и другое.

Последняя вещь давала команду bash

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

ярлык через это .

Если у кого-то есть предложения по изменению сценария или чего-то еще, я бы с удовольствием его услышал. (У меня нет опыта работы с скриптами, поэтому я уверен, что его можно улучшить.)