用python进行OCR识别
原文链接:https://www.bilibili.com/opus/1036675560501149699
我担心原作者删除,所以重新拷贝了一遍
1.下载tesseract
链接:https://github.com/UB-Mannheim/tesseract/wiki
这里示例安装最新版本
点击下载tesseract安装包
2.安装tesseract
在安装时,注意安装路径,自定义路径或者默认路径都要记录下路径,后面有用
安装路径
安装会遇到一个常见的问题:
Download error Status of equ: Send Request Error. Click OK to continue
“
Download error Status of equ: Send Request Error. Click OK to continue
这是因为下载安装语言包的时候与官网链接失败了,这里暂时不用管,直接点击确定或者OK即可。
3.语言包安装
上一章提到会遇到常见的错误就是语言包安装失败,这里提供一个额外的语言包下载地址,下载好后放到指定文件夹即可。
语言包下载地址:https://github.com/tesseract-ocr/tessdata/releases/tag/4.00
这里虽然是tesseract 4.0版本的语言包,但是根据GitHub的官方说明,一样完全适用于tesseract 5.0版本,不必担心。
tesseract 4.0版本的语言包适用于tesseract 5.0版本
下载好语言包后,把语言包内所有文件放到前面记录的安装tesseract路径下tessdata文件夹
前面记录的安装tesseract路径
4.环境变量配置
我的电脑 →属性→高级系统设置→环境变量
点击我的电脑–>属性–>高级设置—>环境变量---->path下面的—>新建—>
变量名:TESSDATA_PREFIX
前面记录的安装tesseract路径
变量值:安装路径加上\tessdata
5.在pycharm中安装pytesseract,并输入代码
import pytesseract
from PIL import Image
import openpyxl
import os
设置tesseract可执行文件的路径 (需要根据实际情况调整路径)
pytesseract.pytesseract.tesseract_cmd = r’你的安装路径’
图片文件路径
image_dir = r"你的图片路径"
函数:从图片中提取文本(表格数据)
def extract_table_from_image(image_path):
# 打开图片
img = Image.open(image_path)
# 使用pytesseract进行OCR识别,获取文本
text = pytesseract.image_to_string(img, config=‘–psm 6’) # 6表示假设图片中有结构化的表格
return text
函数:将表格数据保存到xlsx文件
def save_to_xlsx(text_data, output_path):
# 创建新的Excel工作簿
wb = openpyxl.Workbook()
ws = wb.active
# 将文本数据按行写入Excel,假设每行数据以制表符或空格分隔
for row in text_data.splitlines():ws.append(row.split())# 保存为xlsx文件
wb.save(output_path)
处理多个图片文件
image_file = os.path.join(image_dir, f"你的图片文件名")
# 提取图片中的表格内容
table_text = extract_table_from_image(image_file)
# 将提取的表格数据保存为xlsx文件
output_file = os.path.join(image_dir, f"table.xlsx")
save_to_xlsx(table_text, output_file)
print(f"表格数据已保存到 {output_file}")
即可提取图片中表格保存到xlsx格式的excel文件中