Как извлечь текст из скриншотов в Linux, не прибегая к онлайн-сервисам

Если вы хоть раз пытались скопировать текст с картинки, то вы знаете эту боль. Сидишь, смотришь на скриншот с ошибкой в терминале или документе, а курсор мыши беспомощно мигает. Хочется просто выделить и вставить, но, увы, перед нами всего лишь изображение. Конечно, можно погуглить “онлайн OCR”, загрузить туда картинку, дождаться, пока сайт пережует её и выдаст результат. Но как-то некомфортно — особенно когда это скриншот с конфиденциальными данными. Интернет всё помнит, да и лишний клик уже раздражает.

Как вытащить текст из скриншотов в Linux
Как вытащить текст из скриншотов в Linux

Вот тут и появляется герой сегодняшнего дня spectacle-ocr. Маленькая, но чертовски полезная утилита, которая умеет делать ровно то, что вам нужно. Она без проблем может превращать текст на картинке обратно в текст. Прямо в Linux, локально, без плясок с бубном и без отправки в облако.

Что это вообще такое

Всё гениальное просто. Spectacle-ocr это надстройка над стандартной программой для скриншотов Spectacle (если вы на KDE, она у вас почти наверняка уже стоит). Когда вы делаете снимок экрана, утилита добавляет одну маленькую, но мощную кнопку: “Извлечь текст”. Нажимаете и магия случается.

Под капотом работает Tesseract известный движок распознавания текста с открытым исходным кодом. Его используют даже в крупных проектах, а тут он просто делает своё дело, сканирует картинку, находит буквы и превращает их обратно в символы. Результат сразу копируется в буфер обмена, и вы можете вставить его куда угодно хоть в терминал, хоть в Telegram.

Всё это происходит локально, на вашем компьютере. Никаких сторонних серверов, никаких «мы собираем ваши данные ради улучшения сервиса». Просто вы, ваш скриншот и немного магии open source.

Как это выглядит на практике

Вот представьте, вы делаете скриншот окна с ошибкой (а ошибки, как назло, никогда не бывают короткими). Вместо того чтобы перепечатывать длинный путь до файла и код ошибки, вы щёлкаете правой кнопкой по изображению , далее “Извлечь текст” и готово. Текст уже у вас в буфере обмена. Можно сразу вставлять в Google ну или в Yandex, в чат коллеге или в заметки. Легко и просто, без лишних телодвижений.

А если вы любите терминал, то можно вообще запустить распознавание вручную: ocr.sh ~/Pictures/error.png. Скрипт всё сделает за вас, очистит временные файлы, отправит уведомление на рабочий стол и скажет “Готово!”. Честно говоря, впервые попробовав, я просто хмыкнул “Да ну, не может быть так просто!”. А оказывается может.

Установка: два пути быстрый и ручной

Как и всегда, есть два способа установки, довериться автоматике или сделать всё самому.

Способ 1. Через установочный скрипт. Самый ленивый и удобный вариант. Скачиваете репозиторий с GitHub:

git clone https://github.com/kbkozlev/spectacle-ocr

Переходите в папку и запускаете bash setup.sh. Всё остальное скрипт сделает за вас: установит зависимости, добавит пункт “Извлечь текст” в меню экспорта Spectacle, обновит базы данных приложений и покажет готовый результат. Всё — можно пользоваться.

Способ 2. Вручную. Если вы не доверяете чужим скриптам (и я вас понимаю), то можно пройтись вручную. Устанавливаете зависимости:

sudo apt install tesseract-ocr imagemagick wl-clipboard xclip libnotify-bin desktop-file-utils

Копируете скрипт ocr.sh в ~/.local/bin, делаете его исполняемым, создаёте desktop файл, и всё готово. Да, чуть дольше, зато вы точно знаете, что происходит внутри.

В обоих случаях результат один и тот же в Spectacle появляется опция “Извлечь текст”. И работает она так, будто была там всегда.

Почему это вообще удобно

Во-первых, это быстро. Сделал скриншот, нажал кнопку и готово. Никаких открытий программ, загрузок файлов, ожиданий.

Во-вторых, это безопасно. Всё работает локально. Ваши данные никуда не уходят. В эпоху, когда даже калькулятор требует интернет-доступ, это прям глоток свежего воздуха.

В-третьих, это гибко. Tesseract поддерживает десятки языков, и вы можете использовать, например, “eng+rus”, если у вас часто встречаются смешанные тексты. Плюс можно подключить собственные языковые модели, если вы вдруг распознаёте что-то экзотическое вроде японского или древнегреческого.

И наконец это просто приятно. Вот честно, когда что-то работает “из коробки”, да ещё и быстро, возникает ощущение, что мир не так уж и плох.

Советы от практика (и немного боли)

Извлечение текста штука капризная. Если картинка размыта, шрифт странный или текст сливается с фоном, Tesseract может выдать набор случайных символов, будто вы случайно открыли древний артефакт. Поэтому:

  • Делайте чёткие скриншоты. Лучше один раз увеличить масштаб, чем потом пытаться расшифровать “шум”.
  • Если текст мелкий, то увеличьте изображение через ImageMagick перед распознаванием.
  • Не забывайте про языки, если у вас русский текст, добавьте tesseract-ocr-rus и укажите LANG="rus" в скрипте.
  • И да, если вдруг ImageMagick ругается на policy.xml, не паникуйте это просто ограничения безопасности. Немного правки, и всё заработает.

Лично я пару раз ловил себя на том, что вместо OCR просто открываю скриншот и машинально начинаю перепечатывать текст. Потом вспоминаю, что есть spectacle-ocr, и ругаю себя за забывчивость. Привычки это коварная штука.

Когда этого может быть недостаточно

Конечно, не всё идеально. Если вы не используете KDE, а сидите, скажем, на GNOME или XFCE, придётся повозиться с настройкой. Или заменить Spectacle на что-то вроде Flameshot. Придётся немного адаптировать скрипт, но, как говорится, “не боги же KDE горшки обжигают”.

Кроме того, spectacle-ocr не предназначен для редактирования скриншотов. То есть стрелочки, рамочки и прочие дизайнерские изыски это уже к другим инструментам. Этот скрипт делает одно, он извлекает текст. Но делает это чертовски хорошо.

Итоги (или почему я советую всем это попробовать)

Итак, если вы хоть раз хотели скопировать текст с картинки попробуйте spectacle-ocr. Это крошечная утилита, которая сэкономит вам часы. Работает быстро, ничего лишнего не ставит, уважает вашу приватность и идеально вписывается в рабочий процесс Linux.

Для меня это стало маленьким открытием. Настоящая утилита из тех, что просто работают. А ведь в мире Linux именно такие вещи и ценятся больше всего без рекламы, без помпы, просто добротный инструмент, написанный с душой.

Так что если вы работаете с текстом, ошибками, документацией или просто хотите меньше печатать руками дайте spectacle-ocr шанс.
Пять минут установки и ваш Linux научится вынимать текст даже из самых упрямых скриншотов.

А если не верите, то просто попробуйте. Иногда магия действительно существует. Особенно, если она написана на Bash.

Понравилась статья?

Помогите Setiwik.ru создавать больше глубоких обзоров и новостей. Один клик и ваш вклад помогает держать серверы включёнными и авторов мотивированными!

Спасибо, что вы с нами!

Nazario
Nazario

Я — Nazario, тот самый человек, который больше десяти лет ковыряется в Linux и Windows системах не ради хобби, а потому что это — работа и жизнь. Всё, что вы читаете на Setiwik.ru, — это не пересказ справки из мануала, а результат десятков реальных кейсов, выстраданных конфигов и ночных перезагрузок.

Я не претендую на истину в последней инстанции. Но если мой опыт может кому-то упростить работу — значит, всё это не зря. Здесь нет «магии», только практика: от настроек сервера до неожиданных багов, которые не гуглятся с первого раза.

Setiwik.ru — это место, где IT становится чуть менее хаотичным. Заходите почаще — будем разбираться вместе.

Добавить комментарий