2015-04-03 5 views
0

Я протестировал с образцом текста как буквенно-цифровой, так и цифры. Я использую режим цифр.Tesseract OCR не смог распознать номера полной высоты

Как распознать цифры, как на следующем рисунке:

enter image description here

Я думаю, что это из-за полной высоты. Я также попытался преобразовать его в .jpg используя некоторые онлайн-инструменты (не код)

Я использую pytesseract 0.1.6, но я думаю, что это проблема Tesseract.

Вот мой код:

def classify(hash): 
    socket = urllib.urlopen(hash) 
    image = StringIO(socket.read()) 
    socket.close() 
    image = Image.open(image) 
    number = image_to_string(image, config='digits') 
    mapping[hash] = number 
    return number 

classify('any url') 
+1

Включите картинку прямо в вашем вопросе, а не только ссылку на него , – Almo

+0

Что вы подразумеваете под полной высотой? – tobltobs

+0

Я имею в виду, что текст занимает всю высоту изображения. Скажем, у вас есть 1000x100 изображений и букв высотой 100. – user3002996

ответ

1

Я думаю, что у вас есть две проблемы здесь.

Во-первых, текст довольно маленький. Вы можете масштабировать изображение, сделав его 2x ростом и шириной в два раза (предпочтительно используя AA или кубическую интерполяцию, чтобы попытаться сделать буквы более четкими).

Дальше не хватает белого цвета по краю цифр, чтобы tesseract знал, что это на самом деле край. Поэтому вам нужно добавить пустой пробел вокруг того, что у вас уже есть.

Вы можете сделать это вручную, используя фотошоп, GIMP или ImageMagick или что-то еще, чтобы подтвердить, что это действительно поможет. Но если вам нужно сделать кучу изображений, вы, вероятно, захотите использовать PIL и ImageOps, чтобы помочь.

How do I resize an image using PIL and maintain its aspect ratio?

Если вы сделаете новые размеры больше, чем меньше, PIL будет расти образ, а не уменьшить его. Увеличьте его на 2x или 3x как по ширине, так и по высоте, а не на 20%, так как это вызовет артефакты.

Вот один из способов, чтобы добавить дополнительную белую кайму: http://effbot.org/imagingbook/imageops.htm#tag-ImageOps.expand

Этот вопрос может помочь вам с добавлением дополнительных пробелов также: In Python, Python Image Library 1.1.6, how can I expand the canvas without resizing?