我有一张图像,我需要从中提取这个数字(真值标签):
۱٤٤۲٦۷
。我正在使用 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)
,结果是:
ر
ق
م
:
٤
٢
٦
٧
١
٤
(
所以看起来文本的显示和存储方式不同,那么我该如何解决这个问题并将文本输出为
۱٤٤۲٦۷
,就像图像中的真值一样?
而不是使用:
arabic_num.group(1).replace(' ', '')
尝试:
numbers = arabic_num.group(1).split(" ")
numbers.reverse()
result = ''.join(numbers)
print(result)