PYOCR - получить следующее слово в цикле - PullRequest
0 голосов
/ 06 марта 2019

Я сейчас пытаюсь сделать проект захвата на Python. В настоящее время я нахожусь на части сбора контактной информации на счете.

На данный момент я основал свой первый поиск по почтовому индексу, чтобы найти некоторую полезную информацию. Затем я буду использовать позиции (X-Y) ближайшего слова для построения всей информации об адресе.

Но у меня есть проблема. У меня есть этот кусок кода, который возвращает слова в том же столбце почтового индекса (xTL означает положение х в верхнем левом углу слова)

line_and_word_boxes = tool.image_to_string(
    img,
    lang="fra",
    builder=pyocr.builders.WordBoxBuilder()
)


arrayOfLine     = []
arrayOfZipCode  = []

# xTL stands for x Top Left (the position of X on the top left of the word)
# yTL stands for y Top Left
# xBR stands for x Bottom Right (the position of X on the bottom right of the word)
# yBR stands for y Bottom Right
for box in line_and_word_boxes: # Loop over all the lines of the document
    arrayOfLine.append({
        'xTL'      : box.position[0][0],
        'yTL'      : box.position[0][1],
        'xBR'      : box.position[1][0],
        'yBR'      : box.position[1][1],
        'content'   : box.content
    })
    if re.match(r"^\d{5}$", box.content) is not None: # Search for zip code (regex on 5 digits)
    arrayOfZipCode.append({
        'xTL'      : box.position[0][0],
        'yTL'      : box.position[0][1],
        'xBR'      : box.position[1][0],
        'yBR'      : box.position[1][1],
        'content'   : box.content
    })

    for line in arrayOfLine:
    # Check words on the same column and put them in an array of words
    if abs(line['xTL'] - zipCode['xTL']) < rangeX :
        nearXWord.append({
            'xTL': line['xTL'],
            'yTL': line['yTL'],
            'xBR': line['xBR'],
            'yBR': line['yBR'],
            'content': line['content']
        })

Так что в следующем примере этот код вернет мне массив, содержащий «M», «1762», «1ER», «84000»

enter image description here

Теперь моя проблема в том, как мне найти слова в одной строке каждого слова, которое я нашел ранее?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...