最重要的字符提取

时间:2019-01-01 14:27:48

标签: python string ocr

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

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

这种数组正在返回。所以我想提取BEYHAN,但是有一些遗漏的部分。

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

1 个答案:

答案 0 :(得分:1)

首先,有代表字母的特定数字。因此,在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