Как я могу извлечь текст из изображений?

Как я могу извлечь текст из изображений?

Я говорю не о отсканированных файлах, а о разнообразных садовых изображениях, например, когда вы фотографируете классную доску с высоким разрешением на уроке, и она хорошо написана от руки; или когда вы фотографируете страницу из книги рецептов и хотите рецепт в текстовом формате.

Любое бесплатное и открытое программное обеспечение для этого?

Я попробовал тессеракт, и результаты были ужасны.

5 ответов

Решение

Акт извлечения текста из изображений называется OCR а в Ubuntu есть вики-страница, посвященная OCR. С этой страницы:

Доступные инструменты OCR

Репозитории Ubuntu Universe содержат следующие инструменты OCR:

  1. gocr - командная строка OCR
  2. fuzzyocr - плагин spamassassin для проверки вложений изображений
  3. libhocr0 - иврит OCR
  4. ocrad - программа оптического распознавания символов
  5. ocrfeeder - Система анализа документов и система оптического распознавания символов
  6. ocropus - анализ документов и система распознавания текста
  7. тессеракт-OCR

Мультивселенные репозитории Ubuntu также содержат:

  1. клинопись - многоязычная система распознавания текста

Некоторые пакеты устарели, но неофициальные свежие можно найти в Alex_P PPA (PPA добавляет код: ppa:alex-p/notesalexp). Если вы никогда не использовали PPA, проверьте, как добавить программное обеспечение из PPA.

изменить: как показано в комментарии Клара OCR тоже существует, но он застрял на Харди, и их сайт 2009 года, как последнее обновление.

tesseract-ocr был бы великим по сравнению со всеми другими. Для установки выполните команду sudo apt-get install tesseract-ocr,

Использование tesseract filename.jpg output.txt,

Выше команда сгенерирует output.txt,

Вы можете выбрать подходящий язык. В этом случае вам нужно будет установить tesseract-ocr-LANG пакет, где LANG это трехбуквенный код языка ISO 639-2. Прямо сейчас у вас есть 123 языка на репо 18.04. Тогда используйте, например:

tesseract mySpanishText.jpg output -l spa

Лягушка

Попробуйте лягушку

Чтобы установить на Ubuntu с помощью Flatpak:

  1. Во-первых, если вы еще этого не сделали, установите Flatpak с помощью краткого руководства по Ubuntu . Не забудьте после этого перезагрузить систему.

  2. Перейдите к Frog на Flathub и нажмите «Установить». Или, если вы предпочитаете командную строку, запустите эту команду:

            flatpak install flathub com.github.tenderowl.frog
    

TextSnatcher

Попробуйте TextSnatcher . Это приложение использует Tesseract OCR 4.x для распознавания символов за кулисами.

Вероятно, самый простой способ установить его на Ubuntu — это получить его с Flathub:

  1. Во-первых, если вы еще этого не сделали, установите Flatpak с помощью краткого руководства по Ubuntu . Не забудьте после этого перезагрузить систему.

  2. Перейдите в TextSnatcher на Flathub и нажмите «Установить». Или, если вы предпочитаете командную строку, запустите эту команду:

            flatpak install flathub com.github.rajsolai.textsnatcher
    

Используя мы можем извлечь текст из изображений . я тестировал gocrкоторый не работал хорошо по сравнению с tesseract-ocr

Монтаж:

      sudo apt-get install tesseract-ocr

Pythonпрограмма для преобразования всех файлов изображений с расширением png внутри текущего каталога в файл txt

      #!/usr/bin/env python3.10
import os
import subprocess

def list_files(path):
    files = []
    for name in os.listdir(path):
        if os.path.isfile(os.path.join(path, name)):
            files.append(os.path.join(path, name))
    return files

def convertImageToText(img_file):
    #process = subprocess.Popen(['tesseract', img_file,
    #    ''.join(img_file.rsplit('.png', 1))])
    os.system(f"tesseract {img_file} {''.join(img_file.rsplit('.png', 1))}")


def startOperation():
    list_file = list_files(".")
    print(list_file)
    for img_file in list_file:
        if img_file.lower().split(".")[-1] == "png":
            convertImageToText(img_file)

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