Пишу грабер на 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” и “-” (http://i.imgur.com/7DgTS0W.png). Мне же необходимо добиться 100% распознования номеров. Как посоветуете решать задачу, ребята?