用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.mzph.cn/web/77185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

区间和数量统计 之 前缀和+哈希表

文章目录 1512.好数对的数目2845.统计趣味子数组的数目1371.每个元音包含偶数次的最长子字符串 区间和的数量统计是一类十分典型的问题:记录左边,枚举右边策略前置题目:统计nums[j]nums[i]的对数进阶版本:统计子数组和%modulo k的…

PCB 制造流程分步指南

最近的一次PCB打板经历,板厂工程人员告知丝印偏到焊盘上了,内部让我评估是否可以继续贴片。 于是发一期文章,介绍一下PCB制造流程。 PCB制造工艺 PCB设计获得批准且制造商收到最终制造文件后,PCB制造或生产就开始了。此时&…

python实现简单的UI交互

文章目录 1. 基础打印 覆盖同一行2. 多行动画效果3. 彩色文本(Windows/macOS/Linux)4. 输入交互5. 异步输入与非阻塞显示6. 高级控制台 UI 库 可以通过控制台打印实现简单的「伪UI交互」,尤其适合展示进度、动态文本或轻量级状态反馈。以下是…

AI与思维模型【77】——PDCA思维模型

一、定义 PDCA思维模型是一种用于持续改进和优化工作流程、项目实施以及问题解决的科学管理方法。它由四个英文字母组成,分别代表计划(Plan)、执行(Do)、检查(Check)和处理(Act&…

10天学会嵌入式技术之51单片机-day-3

第九章 独立按键 按键的作用相当于一个开关,按下时接通(或断开),松开后断开(或接通)。实物图、原理图、封装 9.2 需求描述 通过 SW1、SW2、SW3、SW4 四个独立按键分别控制 LED1、LED2、LED3、LED4 的亮…

vite+vue2+elementui构建之 package.json

webpack版本太低,构建依赖太多,头大。 各种查阅资料,弄了一份直通构建vite构建elementUi核心文件, 构建基于开源若依vue2vue3版本改造,感谢开源,感谢若依。 vitevue2elementui构建之 vite.config.js-CSD…

提升变电站运维效率:安科瑞无线测温系统创新应用

一、引言 变电站作为电力系统的关键枢纽,承担着变换电压、分配电能以及控制电力流向等重要任务。在变电站的运行过程中,电气设备的接点温度监测至关重要。过热问题可能由多种因素引发,如电阻过大、接头质量欠佳、衔接不紧密、物理老化等&…

DMA的三种传输功能

①内存到内存 #include "dma.h" #include "stdio.h"#define BUF_SIZE 16uint32_t src_buf[BUF_SIZE] {0x00000000,0x11111111,0x22222222,0x33333333,0x44444444,0x55555555,0x66666666,0x77777777,0x88888888,0x99999999,0xAAAAAAAA,0xBBBBBBBB,0xCCCCCCC…

【MySQL】MySQL 表的增删改查(CRUD)—— 下篇(内含聚合查询、group by和having子句、联合查询、插入查询结果)

目录 1. 插入查询结果 2 聚合查询 (行与行之间运算) count 计算查询结果的行数 sum 求和 avg 求平均值 max 最大值 min 最小值 【小结】 3. group by 子句 分组 where 条件 having 条件 4. 联合查询(多表查询) 内连接…

“思考更长时间”而非“模型更大”是提升模型在复杂软件工程任务中表现的有效途径 | 学术研究系列

作者:明巍/临城/水德 还在为部署动辄数百 GB 显存的庞大模型而烦恼吗?还在担心私有代码库的安全和成本问题吗?通义灵码团队最新研究《Thinking Longer, Not Larger: Enhancing Software Engineering Agents via Scaling Test-Time Compute》…

电脑屏幕录制软件Captura源码编译(Win10,VS2022)

屏幕录像的意义: 教育教学方面 制作教学资源:教师可以通过录制屏幕来制作教学视频,演示软件操作、讲解复杂的知识点等。学生可以随时观看这些视频,便于复习和巩固知识,尤其对于一些抽象的概念或难以在课堂上一次性掌握…

记一次调用大华抓拍SDK并发优化

目录 一、问题分析 二、解决思路 三、贴代码 四、总结 一、问题分析 按惯例上问题: 设备告警采用高电平持续模式:一次开,不主动关就一直处于告警状态。 并发时多个请求下发 setDVRAlarmOutConfig,导致状态混乱。 “开 -&g…

Python图像变清晰与锐化,调整对比度,高斯滤波除躁,卷积锐化,中值滤波钝化,神经网络变清晰

本次使用图片来源于百度 import cv2 import time import numpy as np import pywtfrom PIL import Image, ImageEnhance#-i https://pypi.mirrors.ustc.edu.cn/simpledef super_resolution(input_path, output_path, model_path, scale4):# 初始化超分辨率模型sr cv2.dnn_su…

12个HPC教程汇总!从入门到实战,覆盖分子模拟/材料计算/生物信息分析等多个领域

在科学研究、工程仿真、人工智能和大数据分析等领域,高性能计算 (High Performance Computing, HPC) 正扮演着越来越重要的角色。它通过并行处理、大规模计算资源的整合,极大提升了计算效率,使原本耗时数日的任务能够在数小时内完成。 随着计…

使用Autocannon.js进行HTTP压测

目录 一、为什么选择Autocannon? 二、五分钟快速上手 1. 环境准备 2. 发起首个压测 3. 解读测试报告 三、高阶场景实战 场景1:POST请求压测 场景2:阶梯式压力测试 场景3:编程式集成测试 四、结果深度分析指南 1. 延迟分…

pnpm install报错:此系统上禁止运行脚本

依赖安装 报错信息: pnpm : 无法加载文件 C:\Users\XXX\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Policies。 所在位置 行:1 …

第9章 多模态大语言模型

​​​​​​第1章 对大型语言模型的介绍第2章 分词和嵌入第3章 解析大型语言模型的内部机制第4章 文本分类第5章 文本聚类与主题建模第6章 提示工程第7章 高级文本生成技术与工具第8章 语义搜索与检索增强生成第10章 构建文本嵌入模型第11章 面向分类任务的表示模型微调第12章…

Python 绘图代码解析:用 Turtle 和 Colorsys 打造绚丽图案

注:本文为作者原创文章,未经许可禁止转载。 Python 绘图代码解析:用 Turtle 和 Colorsys 打造绚丽图案 在 Python 的世界里,有许多有趣的库可以用来创造精美的图形。今天,我们就来详细剖析一段使用turtle库和colorsys库的代码,看看它是如何绘制出独特图案的。 一、库的导…

RTMP 入门指南

1. RTMP 基础概念​​ ​​核心角色​​: ​​推流端(Publisher)​​:将音视频数据推送到服务器的设备(如OBS、手机APP)。​​服务器(RTMP Server)​​:接收推流并分发给…

Java Stream流 常用方法

Map 修改 用于修改集合里的值 public void findData(){ArrayList<String> list new ArrayList<>();list.add("张三");list.add("李四");List<String> collect list.stream().map(s -> s "a").collect(Collectors.toLi…