Как извлечь текст из изображений?
Я говорю не об отсканированных файлах, а о самых разных изображениях, например, когда вы делаете снимок школьной доски в классе в высоком разрешении, и на нем хорошо написан текст от руки; или когда вы фотографируете страницу из кулинарной книги и хотите получить рецепт в текстовом формате.
Есть ли для этого свободное и открытое программное обеспечение?
Я попробовал tesseract, и результаты были ужасными.
решение1
tesseract-ocr
будет лучшим по сравнению со всеми остальными. Для установки выполните следующую команду
sudo apt-get install tesseract-ocr
Использование tesseract filename.jpg output.txt
, тогда будет сгенерирован output.txt
файл.
Вы можете рассмотреть возможность выбора соответствующего языка. В этом случае вам нужно будет установить tesseract-ocr-LANG
пакет, где LANG
находится трехбуквенныйКод языка ISO 639-2. Сейчас в репозитории 18.04 есть 123 языка.Тогда используйтенапример:
tesseract mySpanishText.jpg output -l spa
решение2
Процесс извлечения текста из изображений называется OCR
и в Ubuntu есть вики-страница, посвященнаяОРС. С этой страницы:
Доступные инструменты OCR
Репозитории Ubuntu Universe содержат следующие инструменты OCR:
- gocr- Командная строка OCR
- fuzzyocr- плагин spamassassin для проверки прикрепленных изображений
- libhocr0- ОРС на иврите
- окрад- Программа оптического распознавания символов
- ocrfeeder- Система анализа макета документа и оптического распознавания символов
- окропус- система анализа документов и OCR
- тессеракт-ocr
Репозитории Ubuntu multiverse также содержат:
- клинопись- многоязычная система OCR
Некоторые пакеты устарели, но неофициальные свежие пакеты можно найти вAlex_P ППА(Код добавления PPA: ppa:alex-p/notesalexp). Если вы никогда не использовали PPA, проверьтекак добавить программное обеспечение из PPA.
редактировать: как показано в комментарииКлара OCRтоже существует, но у Hardy возникли проблемы, а на их сайте последнее обновление датировано 2009 годом.
решение3
Лягушка
ПытатьсяЛягушка. Frog — это интуитивно понятный инструмент извлечения текста (OCR) для GNOME.
решение4
Используя tesseract-ocr
мы можем извлечьтекстотизображений. Я проверил, gocr
что не работает хорошо по сравнению сtesseract-ocr
Монтаж:
sudo apt-get install tesseract-ocr
Python
программа для конвертации всех файлов изображений сpngрасширение внутри текущего каталога натекстфайл
#!/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()