使用 OCR 和 Python 提取阿拉伯数字

问题描述 投票:0回答:1

我有一张图像,我需要从中提取这个数字(真值标签):

۱٤٤۲٦۷
。我正在使用 EasyOCR:
results = reader.readtext(image,paragraph = True,text_threshold =0.15,low_text=0.2,add_margin=0.09)
当我打印 OCR 输出的文本时,我得到:
رقم :٤٢٦٧ ١٤ (
,因此要提取我使用过的数字:
arabic_num = re.search(r':([\d\s]+)', text, re.UNICODE)
,然后代码
print(arabic_num.group(1))
会生成
٤٢٦٧ ١٤
。但是,当我尝试使用
١٤
删除
٤٢٦٧
arabic_num = arabic_num.group(1).replace(' ', '')
之间的空间时,我得到 ٤٢٦٧١٤。所以我决定循环文本以查看它是如何存储的:
for i in text: print(i)
,结果是:

ر
ق
م
 
:
٤
٢
٦
٧
 
١
٤
 
(

所以看起来文本的显示和存储方式不同,那么我该如何解决这个问题并将文本输出为

۱٤٤۲٦۷
,就像图像中的真值一样?

python string replace ocr
1个回答
0
投票

而不是使用:

arabic_num.group(1).replace(' ', '')

尝试:

numbers = arabic_num.group(1).split(" ")
numbers.reverse()
result = ''.join(numbers)
print(result)
© www.soinside.com 2019 - 2024. All rights reserved.