用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文件中

相关推荐
GPU实战笔记4 分钟前
云端 Python 开发:JupyterLab 还是 VS Code Remote-SSH?
python·vs code·jupyterlab·remote-ssh·远程开发
狗狗狗狗狗乐啊29 分钟前
搭一个 AI 对话工作台 AChat:从 0 到可用的完整记录(一)
python·react.js·ai编程
qq_25183645731 分钟前
springboot vue3 开发实现 拼豆管理系统
java·开发语言·ai编程
白猫不黑1 小时前
Python实现简易Web弱口令爆破与防护方案
python·web安全·计算机·网络安全·黑客·信息安全·渗透测试
郑州光合科技余经理1 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
kuuailetianzi2 小时前
Python初识:定位、优势与发展历程
python
知识分享小能手2 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
guoran_shini2 小时前
LLM微调-训练垂类问答模型
python·lora·sft
basketball6162 小时前
Python FastAPI 介绍以及常用方法
python·fastapi·vllm·ai infra
+VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue旅游管理系统(源码+数据库+文档)
java·开发语言·vue.js·spring boot·课程设计