Как я могу использовать OCR на частичном снимке экрана, чтобы получить текст?

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

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

1 ответ

Решение

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

#!/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", и Тессеракт также продолжал выдавать ошибки "пустой страницы")

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

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

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

Последнее, что дал команда bash

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

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

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

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