Как я могу использовать OCR на частичном снимке экрана, чтобы получить текст?
Когда я все еще использовал Windows, я любил использовать программу capture2text OCR для извлечения японских иероглифов из манги и выгрузки их в jisho.org, и мне было интересно, как я могу получить такую же функциональность в Ubuntu. А именно:
- Сделайте частичный снимок экрана после нажатия назначенной горячей клавиши (щелчок + стиль перетаскивания).
- Обработайте изображение с помощью механизма OCR.
- Выведите результат в буфер обмена.
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
Некоторые цели, которые у меня были с измененным файлом:
- Устранение необходимости в sudo (чтобы можно было легко связывать горячие клавиши)
- Замена scrot (способ работы gnome-screenshot выглядит намного лучше IMO)
- Упростите сценарий до того, что мне будет проще понять (удаление временных файлов)
- Ограничить распознавание одним персонажем за раз. (распознавание было ужасным без этой "-psm 10", и Тессеракт также продолжал выдавать ошибки "пустой страницы")
Еще две вещи, которые я сделал:
chmod a+x /home/takingitcasual/Documents/Translate/
и установка разрешений для временных файлов для чтения / записи для всех. Не уверен, было ли излишним делать оба.
Последнее, что дал команда bash
bash /home/takingitcasual/Documents/Translate/screen_ts.sh
ярлык через это.
Если у кого-нибудь есть предложения по изменению сценария или что-то еще, я бы с удовольствием его услышал. (У меня нет опыта работы со сценариями, поэтому я уверен, что его можно улучшить.)