在学习使用Python实现OCR识别的时候 出现了问题
现在是能够使用模型将内容识别输出,但是有很多我并不需要的信息,要如何才能准确的通过代码逻辑输出我想要的那一行信息或者将我想要的信息放到一个列表之类的地方再输出。
我想要达到的目标就是:准确的通过代码逻辑输出我想要的那一行信息或者将我想要的信息放到一个列表之类的地方再输出。
在学习使用Python实现OCR识别的时候 出现了问题
现在是能够使用模型将内容识别输出,但是有很多我并不需要的信息,要如何才能准确的通过代码逻辑输出我想要的那一行信息或者将我想要的信息放到一个列表之类的地方再输出。
我想要达到的目标就是:准确的通过代码逻辑输出我想要的那一行信息或者将我想要的信息放到一个列表之类的地方再输出。
该回答引用GPTᴼᴾᴱᴺᴬᴵ
在OCR识别的过程中,可能会出现很多干扰信息,需要进行过滤,只提取出自己需要的信息。具体实现方法可能因为不同的OCR引擎和识别场景而有所差异,但一般可以按以下步骤进行:
下面是一个示例代码,以Tesseract OCR引擎为例,假设需要识别身份证上的姓名和身份证号码:
import pytesseract
import re
# 加载OCR引擎
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
# 读取身份证图片
img = 'id_card.png'
# OCR识别,输出原始文本
text = pytesseract.image_to_string(img, lang='chi_sim')
print(text)
# 去除空格、换行等
text = re.sub(r'\s+', '', text)
# 筛选姓名和身份证号码
pattern_name = r'姓名([\u4e00-\u9fa5]{2,5})'
pattern_id = r'身份证号码(\d{17}[\dX])'
name = re.search(pattern_name, text).group(1)
id_num = re.search(pattern_id, text).group(1)
# 输出姓名和身份证号码
print('姓名:', name)
print('身份证号码:', id_num)
这个示例代码中,首先使用Tesseract OCR引擎对身份证图片进行识别,得到原始文本。然后使用正则表达式筛选出姓名和身份证号码,最后输出这两个信息。在实际使用中,还可以根据需要对姓名和身份证号码进行进一步的处理和格式化。