首页 > 解决方案 > 最重要的字符提取

问题描述

我正在通过 OCR 从身份证中提取字符。我有 4 个不同的图像,但所有图像都是 1 个人(我)的。有 4 种不同的文本提取结果。例如名称提取

[' BEYHAN', ' S BEYHAN h of', ' 2EYHAN', ' B3YHAN U']

这种数组正在返回。所以我想提取 BEYHAN 但有一些缺失的部分。

我可以在数组中做最常见的单词,当然会返回 BEYHAN,但这仅适用于这种情况。我想获取 '2EYHAN'和 的信息'B3YHAN'。这不是 BEYHAN,但它有一些信息 ( 2-EYHAN) 和 ( B-3-YHAN)。那么你知道有什么算法或方法可以使用这种结果吗?

标签: pythonstringocr

解决方案


首先,有代表字母的特定数字。因此wordt,输入您需要提取的单词并wordn输入表示的数字。下面的代码尝试逐字母匹配单词并检查它是否匹配字母或表示的数字。如果后面的所有匹配,那么他们将打印整个单词,否则他将从头开始。我只是以数字为例。运行代码https://onlinegdb.com/BJaknZFbE

words = ['BEYHAN', ' S BEYHAN h of', '2EYHAN', 'B3YHAN U']
wordt='BEYHAN';
wordn=["2","3","4","6","7","8"];
m=0
c=''
n=0
for word in words:
    c=''
    m=0
    n=0
    for letter in word: 

        if letter==wordt[n] or letter==wordn[n]:

            m=m+1
            c=c+letter;
        else :
            if  len(wordt)!=m:
               m=0
               n=n-1
               c=''
            else:
               print(c) ;
               c=''
               m=0
               n=0   
        if len(wordt)-1>n:  
            n=n+1
        else:
           n=0
    if len(wordt)==m:
       print(c) ;
       c=''
       m=0
       n=0

推荐阅读