OCR для списка TAN (онлайн-банкинг)
У меня есть список TAN на бумаге для онлайн-банкинга, который выглядит следующим образом:
001 123456 015 123456 029 123456 043 123456 ...
002 123456 ...
...
Я отсканировал его, и теперь я хочу использовать OCR для получения текста.
Я попробовал тессеракт, гокр и клинопись.
Все программы не дают хороших результатов. Как я могу OCR текст?
Справочная информация: я хочу сохранить список TAN в keepass. Keepass поддерживает изображения, но только версию для ПК. Версия Android нет. Вот почему я хочу текст. И текст лучше, так как вы можете использовать копирование и вставку.
2 ответа
Я нашел это решение сам:
- Сканирование списка TAN
- удалить идентификатор последовательности с Gimp. Остались только TAN. Необходим, так как в моем случае используются два разных шрифта, которые, кажется, путают OCR
- gocr -C 0123456789 tans.png
- Прямоугольное выделение в терминале: ctrl+alt select-with-mouse
- скопировать + вставить в tans.txt
- read-tan-list.py tans.txt.
- вставить результат, чтобы сохранить или другой пароль приложения.
read-tan-list.py:
import sys
i=0
tans=[]
for line in open(sys.argv[1]):
line=line.strip()
if not line:
continue
tans.append(line)
for i, tan in enumerate(tans):
print('%03d %s' % (i+1, tan)),
if i%5==4:
print('\n'),
else:
print(' '),
Качество исходного изображения часто является критическим ресурсом в ocr. (попробуйте что-то вроде 600 точек на дюйм)
Я бы предложил тебе попробовать тессерат.
tesseract imagename outputbase [-l lang]
(и, имея дело с банковским делом, очень тщательно выбирайте, что вы храните на своих устройствах...)