Как включить цифры только в pytesser? - PullRequest
2 голосов
/ 27 февраля 2012

Я использую pytesser для распознавания изображений в python.В первый раз, когда я делаю снимок экрана со страницы, это нормально, но точность ухудшается на следующих нескольких страницах, пока 87 + 1 не будет $ + $

Странно, а?Я предполагаю, что потому, что pytesser (порт от tesseract для python) создан для распознавания слов и помещает то, что вы распознаете, в контекст для следующего вопроса.Таким образом, без возможности отключить это, я могу установить только цифры только правильно?Но pytesser не имеет много документации по этому вопросу, поэтому я перешел к часто задаваемым вопросам по tesseract, но на самом деле я не получил код.

Используйте

TessBaseAPI::SetVariable("tessedit_char_whitelist", "0123456789");

ДОвызывая функцию Init или помещая ее в текстовый файл с именем tessdata/configs/digits:

tessedit_char_whitelist 0123456789

, и тогда ваша командная строка становится такой:

tesseract image.tif outputbase nobatch digits

Предупреждение: до старых и новых переменных конфигурациислиться, у вас тоже должен быть параметр nobatch.

Я предполагаю, что tat для C или C ++.Есть ли способ сделать это в Python?Или, что еще лучше, отключить контекст для OCR?

1 Ответ

1 голос
/ 18 мая 2013

В Python:

import tesseract
ocr = tesseract.TessBaseAPI();
ocr.Init(".","eng",tesseract.OEM_TESSERACT_ONLY)
ocr.SetVariable("tessedit_char_whitelist", "0123456789")

Вы также можете захотеть:

ocr.SetVariable("classify_enable_learning", "0")
ocr.SetVariable("classify_enable_adaptive_matcher", "0")
...