Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 10, 2015 09:52:39

nuklea
От:
Зарегистрирован: 2009-12-05
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

vanished

Пишу грабер на Scrapy. Понадобилось распознавать телефоны в изображении. Большинство телефонов отлично распознаются с помощью Tesseract с помощью такого кода:

def parse_phone(self, response):
    # todo: добавить контракт
    phone = Image.open(StringIO(response.body))
    phone.load()
    image = Image.new("RGB", phone.size, (255, 255, 255))
    image.paste(phone, mask=phone.split()[3])  # 3 is the alpha channel
    image = image.resize((image.size[0] * 4, image.size[1] * 4), Image.BICUBIC)
    l = response.meta['loader']
    l.add_value('author_phone', tesseract.image_to_string(image, builder=tesseract.DigitBuilder()))
    return l.load_item()

Но есть такие, которые на которых Tesseract сильно гонит по причине слипшихся символов. Особенно часто этим страдает “4” и “-” (смотри вложение). Мне же необходимо добиться 100% распознования номеров. Как посоветуете решать задачу, ребята?



Прикреплённый файлы:
attachment all.png (217,3 KБ)

Офлайн

#2 Июнь 10, 2015 12:52:30

ih
Зарегистрирован: 2015-05-31
Сообщения: 31
Репутация: +  -6  -
Профиль   Отправить e-mail  

vanished

Офлайн

#3 Июнь 10, 2015 16:01:33

tz4678@gmail.com
Зарегистрирован: 2014-12-07
Сообщения: 71
Репутация: +  -2  -
Профиль   Отправить e-mail  

vanished

vanished

Отредактировано tz4678@gmail.com (Авг. 1, 2020 15:49:05)

Офлайн

#4 Июнь 10, 2015 22:40:31

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

vanished

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

Отредактировано Shaman (Июнь 10, 2015 22:41:00)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version