当前位置: 首页 > ds >正文

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

http://www.xdnf.cn/news/2164.html

相关文章:

  • etcher 刻录系统,装系统,ubuntu安装不要联网,grub tryinstall参数记得改为nomodeset
  • datax通过官网工具包,使用Python命令启动时报错
  • Python图像变清晰与锐化,调整对比度,高斯滤波除躁,卷积锐化,中值滤波钝化,神经网络变清晰
  • 多层级的对象如何修改、或json格式
  • Python实验四
  • 2025年保安员证考试题库及答案
  • 深入剖析EM算法:原理、推导与应用
  • CV大模型、NLP大模型与语音处理技术全景解析-AI学习Day5
  • 三维天地智能路径规划引擎:以算法驱动,重新定义智能路径优化技术
  • 前端面试(Vue React)内容目录与备考建议
  • NCCL通信中Group与独立操作的区别
  • OpenCv高阶(九)——背景建模
  • 每天学一个 Linux 命令(31):md5sum
  • SQL语句练习 自学SQL网 基础查询
  • 伟世通与火山引擎深度合作 前沿AI智能座舱解决方案亮相上海车展
  • playwright的简单使用
  • 信令与流程分析
  • 谷歌终止新冠疫情时期结构化数据支持:SEO影响与应对策略
  • 14-DevOps-快速部署Kubernetes
  • K8S Service 原理、案例
  • 零基础教学:用GISBox将RVT转为3DTiles
  • 力扣-hot100(滑动窗口最大值)
  • Promise简介和使用
  • HDRnet——双边滤波和仿射变换的摇身一变
  • 如何在 MinGW 和 Visual Studio (MSVC) 之间共享 DLL
  • Freertos--统计所有任务栈信息以及CPU占比和钩子函数
  • Flutter Dart 集合类型List Set Map详解军 以及循环语句 forEaclh map where any every
  • 【动手学大模型开发】VSCode 连接远程服务器
  • 苹果iosApp提交审核常见问题--内购订阅篇
  • 技术视界 | 从自然中获取智慧: 仿生机器人如何学会“像动物一样思考和行动”