Как я могу извлечь текст из изображений?
Как я могу извлечь текст из изображений?
Я говорю не о отсканированных файлах, а о разнообразных садовых изображениях, например, когда вы фотографируете классную доску с высоким разрешением на уроке, и она хорошо написана от руки; или когда вы фотографируете страницу из книги рецептов и хотите рецепт в текстовом формате.
Любое бесплатное и открытое программное обеспечение для этого?
Я попробовал тессеракт, и результаты были ужасны.
5 ответов
Акт извлечения текста из изображений называется OCR
а в Ubuntu есть вики-страница, посвященная OCR. С этой страницы:
Доступные инструменты OCR
Репозитории Ubuntu Universe содержат следующие инструменты OCR:
- gocr - командная строка OCR
- fuzzyocr - плагин spamassassin для проверки вложений изображений
- libhocr0 - иврит OCR
- ocrad - программа оптического распознавания символов
- ocrfeeder - Система анализа документов и система оптического распознавания символов
- ocropus - анализ документов и система распознавания текста
- тессеракт-OCR
Мультивселенные репозитории Ubuntu также содержат:
- клинопись - многоязычная система распознавания текста
Некоторые пакеты устарели, но неофициальные свежие можно найти в 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:
Во-первых, если вы еще этого не сделали, установите Flatpak с помощью краткого руководства по Ubuntu . Не забудьте после этого перезагрузить систему.
Перейдите к Frog на Flathub и нажмите «Установить». Или, если вы предпочитаете командную строку, запустите эту команду:
flatpak install flathub com.github.tenderowl.frog
TextSnatcher
Попробуйте TextSnatcher . Это приложение использует Tesseract OCR 4.x для распознавания символов за кулисами.
Вероятно, самый простой способ установить его на Ubuntu — это получить его с Flathub:
Во-первых, если вы еще этого не сделали, установите Flatpak с помощью краткого руководства по Ubuntu . Не забудьте после этого перезагрузить систему.
Перейдите в 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()