100天精通Python(实用脚本篇)——第113天:基于Tesseract-OCR实现OCR图片文字识别实战
文章目录
- 专栏导读
- 1. OCR技术介绍
- 2. 模块介绍
- 3. 模块安装
- 4. 代码实战
- 4.1 英文图片测试
- 4.2 数字图片测试
- 4.3 中文图片识别
- 书籍分享
专栏导读
🔥🔥本文已收录于《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html
- 优点:订阅限时9.9付费专栏进入千人全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会)
- 专栏福利:简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等


1. OCR技术介绍
OCR,即光学字符识别(Optical Character Recognition),是一种将印刷体字符转化为计算机可读文字的技术。OCR技术可以将纸质文档、扫描文档、照片等转化为可编辑的电子文件,方便用户进行编辑、存储和共享。
OCR技术的应用范围非常广泛。例如,银行和保险公司可以使用OCR技术来处理各种表格和文件,包括支票、发票、合同等,从而提高办公效率。医院可以使用OCR技术来处理病历、处方和医学报告,从而提高医疗质量和效率。政府机构可以使用OCR技术来处理各种表格和文件,例如税务申报表、选民登记表等,从而提高政府服务的效率和质量。
OCR技术的原理是利用光学扫描仪将纸质文档转化为数字图像,然后通过图像处理算法将图像中的字符识别出来,并转化为计算机可读的文字。OCR技术的核心是字符识别算法,这个算法需要考虑到各种字体、字号、字距、倾斜度、噪声等因素。
OCR技术的发展历史可以追溯到20世纪50年代,当时的OCR技术只能处理单一字体、字号、字距的文本。随着计算机技术的不断发展,OCR技术也不断进步,现在的OCR技术能够处理各种字体、字号、字距、倾斜度、噪声等复杂条件下的文本,并且具备高精度和高速度的特点。
总之,OCR技术是一种非常实用的技术,可以帮助用户将纸质文档转化为电子文件,从而提高办公效率和工作质量。随着计算机技术的不断进步,OCR技术也将不断发展,为用户提供更加高效和便捷的服务。
2. 模块介绍
Tesseract OCR(Optical Character Recognition)是一个免费的开源OCR引擎,由Google开发和维护。它能够识别图像中的文本,并将其转换为可编辑和可搜索的文本格式。Tesseract支持超过100种语言的文本识别,并且具有高度的准确性和可扩展性。
3. 模块安装
1、安装Tesseract、Tesseract、Pillow模块,可以使用以下命令:
pip install pytesseract
pip install pillow
pip install tesseract-ocr # 如果这个安装报错就用下面的手动安装方法
2、从网上找到相应的‘Tesseract-OCR’下载安装(自行寻找对应版本):https://digi.bib.uni-mannheim.de/tesseract/

3、无脑默认安装即可,
4、安装后的默认文件路径为(这里使用的是Windows版本):C:\Program Files\Tesseract-OCR\

4. 代码实战
4.1 英文图片测试
1. 测试图片准备:

2、修改下面的Tesseract-OCR的安装路径和图片路径:
import cv2
import pytesseract# 1. 找到Tesseract-OCR的安装路径
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'# 2. 图片的路径(注意:图片路径不能有中文
img = cv2.imread(r'English.png')# 3. 对图片进行灰度处理
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 4. 提取字符串
text = pytesseract.image_to_string(gray)# 5. 打印字符串
print(text)
3、运行结果,识别成功:

4.2 数字图片测试
- 测试图片准备:

2、修改下面的Tesseract-OCR的安装路径和图片路径:
import cv2
import pytesseract# 1. 找到Tesseract-OCR的安装路径
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'# 2. 图片的路径(注意:图片路径不能有中文
img = cv2.imread(r'number.png')# 3. 对图片进行灰度处理
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 4. 提取字符串
text = pytesseract.image_to_string(gray)# 5. 打印字符串
print(text)
3、运行结果,识别成功:

4.3 中文图片识别
注意:上面的代码不能直接识别中文,我们需要下载中文语言包
1、下载下面的4个中文语言包文件,复制到Tesseract-OCR安装目录tessdata文件夹里:https://gitcode.com/tesseract-ocr/tessdata/overview
chi_sim.traineddata
chi_sim_vert.traineddata
chi_tra.traineddata
chi_tra_vert.traineddata

网速慢的小伙伴们,博主这里为大家下载好了,搜索公众号:袁袁袁袁满,回复:tessdata,即可:

2、将下载好的中文语言包复制在Tesseract-ocr安装路径的tessdata文件夹里:

3、准备图片:

4、与之前代码区别在于设置了中文语言包:
import cv2
import pytesseract# 1. 找到Tesseract-OCR的安装路径
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'# 2. 图片的路径(注意:图片路径不能有中文
img = cv2.imread(r'Chinese.png')# 3. 对图片进行灰度处理
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 4. 提取字符串,并设置为中文
lang = 'chi_sim'
text = pytesseract.image_to_string(gray,lang)# 5. 打印字符串
print(text)
5、运行结果,提取成功:

书籍分享
《Web前端开发全程实战》

《Web前端开发全程实战——HTML5+CSS3+JavaScript+jQuery+Bootstrap》从初学者角度出发,结合大量实例讲解了如何使用HTML5、CSS3、JavaScript、jQuery、Ajax、Boostrap、Vue、PHP 等基本技术搭建Web 前端,力求向读者提供一套极简的Web 前端一站式高效学习方案。全书共28 章,内容包括HTML5基础、设计HTML5 文档结构、设计HTML5 文本、设计HTML5 图像和多媒体、设计列表和超链接、设计表格和表单、CSS3 基础、设计文本样式、设计特效和动画样式、CSS 页面布局、JavaScript 基础、处理字符串、使用数组、使用函数、使用对象、jQuery 基础、文档操作、事件处理、使用Ajax、CSS 样式操作、jQuery 动画、Bootstrap基础、CSS 组件、JavaScript 插件、使用Vue、PHP 基础、使用PHP 与网页交互、使用PDO 操作数据库、项目实战。书中所有知识点均结合具体实例展开讲解,代码注释详尽,可使读者轻松掌握前端技术精髓,提升实际开发能力。
本书特色:30万+读者体验,畅销丛书新增精品;10年开发教学经验,一线讲师半生心血。
京东地址:https://item.jd.com/13512401.html
相关文章:
100天精通Python(实用脚本篇)——第113天:基于Tesseract-OCR实现OCR图片文字识别实战
文章目录 专栏导读1. OCR技术介绍2. 模块介绍3. 模块安装4. 代码实战4.1 英文图片测试4.2 数字图片测试4.3 中文图片识别 书籍分享 专栏导读 🔥🔥本文已收录于《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准…...
Go七天实现RPC
0.前言 本文是学习自7天用Go从零实现RPC框架GeeRPC | 极客兔兔 在此基础上,加入自己的学习过程与理解。 1.RPC 框架 RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,允许调用不同进程空间的程序。RPC 的客户端和服务器可以…...
Elasticsearch:和 LIamaIndex 的集成
LlamaIndex 是一个数据框架,供 LLM 应用程序摄取、构建和访问私有或特定领域的数据。 LlamaIndex 是开源的,可用于构建各种应用程序。 在 GitHub 上查看该项目。 安装 在 Docker 上设置 Elasticsearch 使用以下 docker 命令启动单节点 Elasticsearch 实…...
QT基础篇(14)QT操作office实例
1.QT操作office的基本方式 通过QT操作Office软件,可以使用Qt的QAxObject类来进行操作。下面是一个例子,展示了通过Qt操作Excel的基本方式: #include <QApplication> #include <QAxObject>int main(int argc, char *argv[]) {QA…...
重拾计网-第四弹 计算机网络性能指标
ps:本文章的图片内容来源都是来自于湖科大教书匠的视频,声明:仅供自己复习,里面加上了自己的理解 这里附上视频链接地址:1.5 计算机网络的性能指标(1)_哔哩哔哩_bilibili 目录 &#x…...
【Vue】Vue 路由的配置及使用
目录捏 前言一、路由是什么?1.前端路由2.后端路由 二、路由配置1.安装路由2.配置路由 三、路由使用1.route 与 router2. 声明式导航3. 指定组件的呈现位置 四、嵌套路由(多级路由)五、路由重定向1.什么是路由重定向?2.设置 redire…...
网络安全事件分级指南
一、特别重大网络安全事件 符合下列情形之一的,为特别重大网络安全事件: 1.重要网络和信息系统遭受特别严重的系统损失,造成系统大面积瘫痪,丧失业务处理能力。 2.国家秘密信息、重要敏感信息、重要数据丢失或被窃取、篡改、假…...
uniapp组件库SwipeAction 滑动操作 使用方法
目录 #平台差异说明 #基本使用 #修改按钮样式 #点击事件 #API #Props #Event 该组件一般用于左滑唤出操作菜单的场景,用的最多的是左滑删除操作。 注意 如果把该组件通过v-for用于左滑删除的列表,请保证循环的:key是一个唯一值,可以…...
YARN节点故障的容错方案
YARN节点故障的容错方案 1. RM高可用1.1 选主和HA切换逻辑 2. NM高可用2.1 感知NM节点异常2.2 异常NM上的任务处理 4. 疑问和思考4,1 RM感知NM异常需要10min,对于app来说是否太长了? 5. 参考文档 本文主要探讨yarn集群的高可用容错方案和容错能力的探讨。…...
C++后端笔记
C后端笔记 资源整理一、高级语言程序设计1.1 进制1.2 程序结构基本知识1.3 数据类型ASCII码命名规则变量间的赋值浮点型变量的作用字符变量常变量 const运算符 二、高级语言程序设计(荣) 资源整理 C后端开发学习路线及推荐学习时间 C基础知识大全 C那…...
JavaEE中什么是Web容器?
Web容器(也称为Servlet引擎)是一个用于执行Java Servlet和JSP的服务器端环境。它负责管理和执行在其上运行的Web应用程序。 Tomcat是Web容器 Apache Tomcat 是一个流行的开源的Web容器,它实现了Java Servlet和JavaServer Pages(…...
MySQL 8.0 架构 之错误日志文件(Error Log)(1)
文章目录 MySQL 8.0 架构 之错误日志文件(Error Log)(1)MySQL错误日志文件(Error Log)MySQL错误日志在哪里Window环境Linux环境 错误日志相关参数log_error_services 参考 【声明】文章仅供学习交流&#x…...
51单片机实验课一
实验任务一:实现控制8个发光管的亮(灭) #include <REGX52.H> void Delay1ms(unsigned int xms) //11.0592MHz {unsigned char i, j;while(xms){xms--;i 12;j 169;do{while (--j);} while (--i);} } void main() {while(1){P20;//八…...
【.NET Core】多线程之线程池(ThreadPool)详解(一)
【.NET Core】多线程之线程池(ThreadPool)详解(一) 文章目录 【.NET Core】多线程之线程池(ThreadPool)详解(一)一、概述二、线程池的应用范围三、线程池特性3.1 线程池线程中的异常…...
圆的参数方程是如何推导的?
圆的参数方程是如何推导的? 1. 圆的三种参数表示2. 三角函数万能公式3. 回到圆的参数方程1. 圆的三种参数表示 已知圆的第一种参数方程为: x 2 + y 2 = r x^2+y^2=r x2+y2=r 圆的图像如下: 通过上图,不难理解,圆的参数方程还可以用三角函数表示,也就是第二种参数表…...
sqlmap使用教程(2)-连接目标
目录 连接目标 1.1 设置认证信息 1.2 配置代理 1.3 Tor匿名网络 1.4 检测WAF/IPS 1.5 调整连接选项 1.6 处理连接错误 连接目标 场景1:通过代理网络上网,需要进行相应配置才可以成功访问目标主机 场景2:目标网站需要进行身份认证后才…...
c++ http第一个服务
c http第一个服务 一、下载相关依赖:这是一个git开源项目 代码仓地址 二、演示代码,编译参数:g test.cpp -I/**** -lpthread #include <httplib.h> using namespace httplib;void wuhan(const Request &req, Response &res) …...
深入Android S (12.0) 探索Framework之输入子系统InputReader的流程
Framework层之输入系统 第一篇 深入Android S (12.0) 探索Framework之输入系统IMS的构成与启动 第二篇 深入Android S (12.0) 探索Framework之输入子系统InputReader的流程 文章目录 Framework层之输入系统前言一、基础知识1、输入子系统2、INotify 与 Epoll2.1、INotify 机制…...
【cucumber】cluecumber-report-plugin生成测试报告
cluecumber为生成测试报告的第三方插件,可以生成html测报,该测报生成需以本地json测报的生成为基础。 所以需要在测试开始主文件标签CucumberOptions中,写入生成json报告。 2. pom xml文件中加入插件 <!-- 根据 cucumber json文件 美化测…...
华为欧拉操作系统结合内网穿透实现固定公网地址SSH远程连接
文章目录 1. 本地SSH连接测试2. openEuler安装Cpolar3. 配置 SSH公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 欧拉操作系统(openEuler, 简称“欧拉”)是面向数字基础设施的操作系统,支持服务器、云计算、边缘openEuler是面向数字基础设施的操作系…...
Phi-4-Reasoning-Vision智能助手:医疗影像图文问答系统构建实践
Phi-4-Reasoning-Vision智能助手:医疗影像图文问答系统构建实践 1. 项目概述 Phi-4-Reasoning-Vision是一款基于微软Phi-4-reasoning-vision-15B多模态大模型开发的高性能推理工具,专为医疗影像分析场景优化。该系统能够理解医学影像内容并回答专业问题…...
突破语言边界:XUnity.AutoTranslator全场景应用指南
突破语言边界:XUnity.AutoTranslator全场景应用指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 当你打开一款期待已久的外文游戏,却被满屏陌生文字阻挡了探索的脚步࿱…...
uniapp中如何用lottie-miniprogram加载json动画?5分钟搞定炫酷效果
Uniapp中5分钟集成Lottie动画:从原理到实战的完整指南 在移动应用开发中,精美的动画效果往往能显著提升用户体验。对于Uniapp开发者来说,Lottie-miniprogram提供了一种高效的方式,可以直接加载设计师导出的JSON动画文件࿰…...
8位单片机中16位int型数据操作技巧
8位单片机中对16位int型数据的操作技巧1. 数据合并的需求背景在8位单片机开发中,经常需要处理16位数据。由于8位架构的限制,16位数据需要拆分为两个8位字节进行存储和传输。当需要将两个8位数据合并为一个16位数据时,开发者需要掌握高效可靠的…...
从Address Editor入手:在Block Design中精准调整Bram存储深度的实战解析
1. 当Bram存储深度无法修改时,你该怎么做? 第一次在Vivado中使用Block Design搭建系统时,很多人都会遇到一个奇怪的现象:明明在Bram IP核的参数设置界面看到了"Depth"这个选项,但无论如何点击都无法修改。这…...
好用还专业!2026 降AIGC平台测评:工具对比+最好用AI推荐
2026年真正好用的AI论文降重与改写工具,核心看降重效果、去AI味、格式保留、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 …...
ROS2数据录制实战:手把手教你用ros2 bag记录Duckiebot图像数据(附常见错误排查)
ROS2数据录制实战:从Duckiebot仿真到真实场景的全流程指南 在机器人开发过程中,数据记录与分析是算法验证和系统调试的关键环节。ROS2提供的ros2 bag工具链为开发者提供了强大的数据采集能力,但实际应用中往往会遇到各种意料之外的问题。本文…...
隐私保护方案:OpenClaw+GLM-4.7-Flash本地化处理敏感数据
隐私保护方案:OpenClawGLM-4.7-Flash本地化处理敏感数据 1. 为什么需要本地化处理敏感数据? 去年我帮一位做财务咨询的朋友处理季度报表时,遇到了一个棘手问题。他需要分析上百份包含客户银行流水、身份证号等信息的Excel文件,但…...
5大核心功能重塑Sketch效率:RenameIt批量命名工具的流程优化实践
5大核心功能重塑Sketch效率:RenameIt批量命名工具的流程优化实践 【免费下载链接】RenameIt Keep your Sketch files organized, batch rename layers and artboards. 项目地址: https://gitcode.com/gh_mirrors/re/RenameIt 在现代UI/UX设计工作流中&#x…...
MinerU本地部署安全吗?数据隐私保护实战配置
MinerU本地部署安全吗?数据隐私保护实战配置 1. 引言:当AI遇见你的敏感文档 想象一下这个场景:你有一份包含商业机密的合同PDF,或者一份涉及个人隐私的医疗报告扫描件。你想用AI快速提取里面的关键信息,但又担心把文…...
