教你用python实现自动化文本识别

目录

步骤1:安装依赖

安装Tesseract

安装pytesseract和Pillow(用于图像处理)

扩展功能


 

实现自动化文本识别(Optical Character Recognition, OCR)通常使用Python的OCR库,例如Tesseract。Tesseract是一个开源的OCR引擎,可以识别多种语言的文本。在Python中,可以使用pytesseract库来调用Tesseract。

以下是一个简单的示例,展示如何使用Python和Tesseract实现自动化文本识别:

步骤1:安装依赖

首先,你需要安装Tesseract OCR引擎和pytesseract库。

安装Tesseract
  • 对于Windows用户,可以从Tesseract的GitHub发布页面下载并安装。
  • 对于macOS用户,可以使用Homebrew安装:
    brew install tesseract

  • 对于Linux用户,可以使用包管理器安装,例如:
    sudo apt-get install tesseract-ocr

安装pytesseract和Pillow(用于图像处理)

使用pip安装这些Python库:

pip install pytesseract Pillow

步骤2:编写Python代码

以下是一个简单的Python脚本,用于从图像中提取文本:

from PIL import Image  
import pytesseract  # 如果Tesseract没有安装在默认路径,你需要指定tesseract_cmd  
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'  # Windows示例  
# pytesseract.pytesseract.tesseract_cmd = '/usr/local/bin/tesseract'  # macOS示例  
# pytesseract.pytesseract.tesseract_cmd = '/usr/bin/tesseract'  # Linux示例  # 打开图像文件  
image_path = 'path_to_your_image.png'  # 替换为你的图像路径  
image = Image.open(image_path)  # 使用Tesseract进行OCR  
text = pytesseract.image_to_string(image, lang='chi_sim')  # 'chi_sim'表示简体中文,可以根据需要更改语言  # 打印识别出的文本  
print(text)


注意事项

  1. 图像质量:OCR的准确性很大程度上取决于图像的质量。确保图像清晰、分辨率高,并且没有噪声或扭曲。
  2. 语言设置:Tesseract支持多种语言。你需要确保安装了所需的语言包,并在代码中指定正确的语言代码。
  3. Tesseract路径:如果在非默认路径下安装了Tesseract,需要在代码中指定Tesseract的路径。

扩展功能

  • 预处理图像:在进行OCR之前,可以使用图像处理技术(如灰度化、二值化等)来增强图像质量。
  • 处理PDF文件:可以使用PyMuPDF(又名fitz)等库来从PDF文件中提取图像并进行OCR。

以下是一个使用PyMuPDF从PDF中提取图像并进行OCR的示例:

import fitz  # PyMuPDF  
import pytesseract  # 打开PDF文件  
pdf_path = 'path_to_your_pdf.pdf'  # 替换为你的PDF路径  
pdf_document = fitz.open(pdf_path)  # 遍历PDF中的每一页  
for page_num in range(len(pdf_document)):  page = pdf_document.load_page(page_num)  images = page.get_images(full=True)  for img_index, img in enumerate(images):  xref = img[0]  base_image = pdf_document.extract_image(xref)  image_bytes = base_image["image"]  # 使用Pillow打开图像  image = Image.open(io.BytesIO(image_bytes))  # 使用Tesseract进行OCR  text = pytesseract.image_to_string(image, lang='chi_sim')  # 打印识别出的文本  print(f"Page {page_num + 1}, Image {img_index + 1}:")  print(text)


这个示例中,我们使用了PyMuPDF从PDF中提取图像,然后使用Pillow打开图像,最后使用pytesseract进行OCR。注意,你需要先安装PyMuPDF库:

pip install PyMuPDF

 全套Python学习资料分享:

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

图片

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

图片

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

图片

四、入门学习视频全套

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

图片

图片

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

图片

在这里插入图片描述

最后

如果你也想自学Python,可以关注我。我会把踩过的坑分享给你,让你不要踩坑,提高学习速度,还整理出了一套系统的学习路线,这套资料涵盖了诸多学习内容:开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。

在这里插入图片描述

希望这篇文章对你有帮助,也希望能帮到大家,因为你我都是热爱python的编程语言爱好者。
————————————————

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/461675.html

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

相关文章

逻辑磁盘管理 附实验:逻辑卷的组成与划分

分区类型: 1、系统引导分区 就是存放系统的引导文件和Linux的内核文件 2、swap分区 交换分区,系统的物理内存不足时,从一些长时间未运行的程序当中释放一部分内存释放出来的保存到swap分区,这些未运行的程序一旦运行还要从swap空…

讲讲 kafka 维护消费状态跟踪的方法?

大家好,我是锋哥。今天分享关于【讲讲 kafka 维护消费状态跟踪的方法?】面试题?希望对大家有帮助; 讲讲 kafka 维护消费状态跟踪的方法? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Kafka 中&#x…

Flutter-Engine 的定制实践:Text 绘制流程浅析及自定义underline的间距

前言 最近工作中处理的文本相关的内容较多,不论是刁钻的需求还是复杂的问题,最终都会引向一点“Flutter中的文本是如何绘制的?”。 这里我将以“调整下划线与文字的间距”为切入点并结合自定义Engine,记录一下我的个人分析和实践…

[A-14]ARMv8/ARMv9-Memory-内存模型的类型(Device Normal)

ver0.1 [看前序文章有惊喜。] 前言 前面花了很大的精力把ARM构建的VMSA中的几个核心的议题给大家做了介绍,相信大家已经能够理解并掌握ARM的内存子系统的工作原理大致框架。接下来我们会规划一些文章,对ARM内存子系统的一些细节做一下介绍,使ARM的内存子系统更加的丰满。本…

可编辑31页PPT | 智慧业务中台规划建设与应用总体方案

荐言分享:随着数字化转型的深入,企业面临着前所未有的挑战与机遇。为了高效整合内外部资源,快速响应市场变化,提升业务创新能力,智慧业务中台应运而生。智慧业务中台作为企业数字化转型的核心基础设施,旨在…

深入理解Docker,从入门到精通-Part1(基础使用)

一、Docker基本概念 Docker架构 基本组件的介绍 Docker Client 是用户界面,它支持用户与Docker Daemon之间通信 Docker Daemon Docker最核心的后台进程,运行于主机上,处理服务请求 Docker registry是中央registry,支持拥有公有与…

在macOS的多任务处理环境中,如何平衡应用的性能与用户体验?这是否是一个复杂的优化问题?如何优化用户体验|多任务处理|用户体验|应用设计

目录 一 多任务处理与应用性能 1. macOS中的多任务处理机制 2. 性能优化的基本策略 二 用户体验的关键要素 1. 响应速度 2. 界面友好性 3. 功能的直观性 三 平衡性能与用户体验的策略 1. 资源管理 2. 优化数据加载 3. 使用合适的线程模型 4. 实时监测和调整 四 使…

lvm逻辑卷管理

分区类型: 主分区扩展分区逻辑分区系统引导分区:存放系统的引导文件和linux的内核文件swap分区:交换分区,系统的物理内存不足时,从一些长时间未运行的程序当中释放一部分内存,释放出来的内存保存到swap分区…

openai api 文件分析/联网/画图代码示例

目的 使用https://4o.zhangsan.shop的API进行文件分析等功能。 完整代码 # pip install openai0.28 # 注意下方代码必须使用该版本 import openaidef query_gpt4(question):openai.api_key "sk-aQR1wbTsLpySgJDq3fFb026c225a44C8924750C1B67bCeD5"openai.api_ba…

Android编译环境构建(二)(可用于物理机、虚拟机、容器化Jenkins环境)

文章目录 需求环境要求文件下载Gradle Version:7.5cmdline-tools至此普通物理环境的Android编译环境已部署完毕 部署maven(可选)Jenkins配置Android构建环境 说明: 物理环境:物理机、虚拟机等 容器化环境:docker等 需求 Gradle Version:7.5 …

WPF+MVVM案例实战(十)- 水波纹按钮实现与控件封装

文章目录 1、运行效果1、封装用户控件1、创建文件2、依赖属性实现2、使用封装的按钮控件1.主界面引用2.按钮属性设置3 总结1、运行效果 1、封装用户控件 1、创建文件 打开 Wpf_Examples 项目,在 UserControlLib 用户控件库中创建按钮文件 WaterRipplesButton.xaml ,修改 Us…

Spring Boot解决 406 错误之返回对象缺少Getter/Setter方法引发的问题

目录 前言1. 问题背景2. 问题分析2.1 检查返回对象 3. 解决方案3.1 确保Controller返回Result类型3.2 测试接口响应 4. 原理探讨5. 常见问题排查与优化建议结语 前言 在Spring Boot开发中,接口请求返回数据是系统交互的重要环节,尤其在开发RESTful风格的…

FineReport 单元格的特殊应用场景

1、实现鼠标点击的行变色 创建报表 1.1、鼠标点击某行时该行高亮显示 JavaScript 代码如下: _g().addEffect(highlightRow, {color: red,trigger: mousedown, });结果 1.2、鼠标悬浮某行时该行变色,离开时恢复 其他一样,就改代码 JavaScr…

MacOS的powermetrics命令查看macbook笔记本的耗能情况,附带查看ANE的工作情况

什么是 powermetrics? powermetrics 是 macOS 系统自带的一个命令行工具,用于收集和分析系统能源消耗数据。通过它,我们可以深入了解 Mac 的硬件性能、软件行为以及能源使用情况,从而优化系统配置,提高电池续航时间。…

系统架构师-一文搞定架构风格

架构风格分类 五大架构风格简介子风格数据流风格面向数据流,按照一定的顺序从前向后执行程序批处理、管道-过滤器调用/返回风格构件与构件之间存在相互调用的关系,一般是显示的调用主程序/子程序、面向对象、层次结构(层次型架构风格&#x…

第13课 数据处理

数轴是一维的,平面直角坐标系是二维的。单个学生的成绩是一维的,全班同学的成绩是二维的。 Python是强大的数据处理工具,可以处理多种数据文件。最基础的数据文件包括一维数据、二维数据、CSV格式数据文件。 这节课重点学习一维数据、二维数据…

3D人体建模的前沿探索:细数主流模型与技术进展

文章目录 一、前言二、主要内容SMPL文献内容:文献信息: SMPLX文献内容:文献信息: STAR文献信息: SCAPE文献内容:文献信息: BfSNet3. 文献内容: SMPLR文献内容:文献信息&a…

闪存学习_1:Flash-Aware Computing from Jihong Kim

闪存学习_1:Flash-Aware Computing from Jihong Kim 前言一、Storage Media:NAND Flash Memory1、概念2、编程和擦除操作3、读操作4、异地更新操作(Out-Place Update)5、数据可靠性6、闪存控制器(SSD主控)7…

【真题笔记】15年系统架构设计师要点总结

【真题笔记】15年系统架构设计师要点总结 分布式数据库中各种透明RAID 5IPv6 IPv4电子商务系统项目配置管理IPO图(输入加工输出图)桥接模式的UML图面向对象设计原则软件测试 在15年真题练习中,对错题模棱两可的考点进行重点记录与内容延申。…

软件测试基础知识总结

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 基础篇 1. 什么是软件测试? 软件测试(Software Testing)的经典定义是:在规定的条件下对程序进行操作&#xff…