Модуль Python OCR в Linux? - PullRequest
       32

Модуль Python OCR в Linux?

20 голосов
/ 27 апреля 2011

Я хочу найти простой в использовании модуль Python OCR в Linux, я нашел pytesser http://code.google.com/p/pytesser/,, но он содержит исполняемый файл .exe.

Я пытался изменить код для использования Wine, и он действительно работает, но он слишком медленный и не очень хорошая идея.

Существуют ли альтернативы Linux, которые так же просты в использовании?

Ответы [ 5 ]

16 голосов
/ 27 апреля 2011

Вы можете просто обернуть tesseract в функцию:

import os
import tempfile
import subprocess

def ocr(path):
    temp = tempfile.NamedTemporaryFile(delete=False)

    process = subprocess.Popen(['tesseract', path, temp.name], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    process.communicate()

    with open(temp.name + '.txt', 'r') as handle:
        contents = handle.read()

    os.remove(temp.name + '.txt')
    os.remove(temp.name)

    return contents

Если вам нужна сегментация документов и более продвинутые функции, попробуйте OCRopus .

11 голосов
/ 27 апреля 2011

В дополнение к ответу Блендера, который просто выполняет исполняемый файл Tesseract, я хотел бы добавить, что существуют другие альтернативы для OCR, которые также можно назвать внешним процессом.

Утилита ABBYY comand line OCR: http://ocr4linux.com/en:start

Это не бесплатно, поэтому стоит рассмотреть, только если точность Тессеракта не достаточно хороша для вашей задачи, или вам нужно более изощренноеАнализ макета или вам нужно экспортировать PDF, Word и другие файлы.

Обновление: вот сравнение ABBYY и точности Тессеракта: http://www.splitbrain.org/blog/2010-06/15-linux_ocr_software_comparison

Отказ от ответственности: Я работаю на ABBYY

6 голосов
/ 13 августа 2012

питон тессеракт

http://code.google.com/p/python-tesseract

import cv2.cv as cv
import tesseract

api = tesseract.TessBaseAPI()
api.Init(".","eng",tesseract.OEM_DEFAULT)
api.SetPageSegMode(tesseract.PSM_AUTO)

image=cv.LoadImage("eurotext.jpg", cv.CV_LOAD_IMAGE_GRAYSCALE)
tesseract.SetCvImage(image,api)
text=api.GetUTF8Text()
conf=api.MeanTextConf()
1 голос
/ 24 мая 2012

Вы должны попробовать отличные библиотеки scikits.learn для машинного обучения. Вы можете найти два кода, которые готовы запустить здесь и здесь .

0 голосов
/ 20 ноября 2014

У вас есть несколько вариантов здесь.

Одним из способов, как указали другие, является использование тессеракта. Похоже, к настоящему моменту существует множество оберток, поэтому лучший способ - сделать быстрый поиск pypi . Наиболее используемые в эти дни:

Еще одним полезным сайтом для поиска похожих движков является alternative.to . Вот некоторые системы на основе Linux:

  • ABBYY
  • Тессеракт
  • CuneiForm
  • Ocropus
  • GOCR
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...