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

如何使用Python获取图片中的文字信息

如下有三中方法:

方法1. 使用Tesseract OCR(pytesseract)

安装依赖

首先,确保你已经安装了Tesseract OCR引擎(例如,通过你的操作系统的包管理器)。然后,你可以通过pip安装pytesseractPillow(PIL的分支)。

pip install pytesseract pillow

你可能还需要设置Tesseract OCR引擎的路径,例如:

import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'  # 例如:r'C:\Program Files\Tesseract-OCR\tesseract.exe'

提取文字

from PIL import Image
import pytesseractdef ocr_core(filename):text = pytesseract.image_to_string(Image.open(filename))return textprint(ocr_core('example.png'))  # 替换 'example.png' 为你的图片文件

方法2. 使用Google Cloud Vision API

设置Google Cloud项目

  • 前往Google Cloud Console并创建一个项目。
  • 启用Vision API。
  • 创建一个服务账户并下载其JSON密钥文件。

安装依赖

你需要安装Google Cloud Vision的Python客户端库:

pip install google-cloud-vision

提取文字

from google.cloud import vision_v1 as vision
from google.cloud.vision_v1 import typesdef ocr_with_google_cloud(path):client = vision.ImageAnnotatorClient()with open(path, 'rb') as image_file:content = image_file.read()image = types.Image(content=content)response = client.document_text_detection(image=image)texts = response.text_annotationsprint('Texts:')for text in texts:print('\n"{}"'.format(text.description))vertices = (["({},{})".format(vertex.x, vertex.y)for vertex in text.bounding_poly.vertices])print("bounds: {}".format(",".join(vertices)))ocr_with_google_cloud('example.png')  # 替换 'example.png' 为你的图片文件

方法3. 使用EasyOCR库

EasyOCR 是一个简单而强大的 OCR 引擎,它支持超过 70 种语言和多种脚本,包括拉丁字母、中文、阿拉伯文、日文、韩文等。以下是如何在 Python 中使用 EasyOCR 库来从图片中提取文字的具体方法:

安装 EasyOCR

首先,你需要安装 EasyOCR。你可以通过 pip 来安装:

pip install easyocr

使用 EasyOCR 提取图片中的文字

以下是一个简单的示例,展示了如何使用 EasyOCR 从图片中提取文字:

import easyocrdef ocr_with_easyocr(image_path, lang_list=['ch_sim', 'en']):"""使用 EasyOCR 从图片中提取文字参数:image_path (str): 图片路径lang_list (list): 要识别的语言列表,默认为简体中文 ('ch_sim') 和英文 ('en')返回:list: 包含一个或多个 dict 的列表,每个 dict 代表一行文字及其位置信息"""reader = easyocr.Reader(lang_list=lang_list)  # 创建一个 Reader 对象,指定要识别的语言result = reader.readtext(image_path)  # 从图片中提取文字return result# 示例使用
results = ocr_with_easyocr('example.png')  # 替换 'example.png' 为你的图片文件
for result in results:print(f"文本: {result['text']}, 位置: {result['bbox']}")

在上面的示例中,ocr_with_easyocr 函数接受一个图片路径和一个语言列表作为参数。它使用 easyocr.Reader 创建一个 Reader 对象,并指定要识别的语言。然后,它调用 readtext 方法从图片中提取文字,并返回一个包含识别结果的列表。每个结果都是一个字典,包含识别到的文本和其在图片中的位置信息(以边界框的形式给出)。

相关文章:

如何使用Python获取图片中的文字信息

如下有三中方法&#xff1a; 方法1. 使用Tesseract OCR&#xff08;pytesseract&#xff09; 安装依赖 首先&#xff0c;确保你已经安装了Tesseract OCR引擎&#xff08;例如&#xff0c;通过你的操作系统的包管理器&#xff09;。然后&#xff0c;你可以通过pip安装pytesse…...

C++知识点

1. 构造函数&#xff1a;当没有写任何构造函数(含拷贝构造)&#xff0c;系统会生成默认的无参构造&#xff0c;并且访问属性是共有。 默认拷贝构造&#xff1a;当没有写任何的拷贝构造&#xff0c;系统会生成默认的拷贝构造->是一个浅拷贝 写了拷贝构造函数&#xff0c;这…...

反转字符串中的单词-力扣

此题将问题分为三步进行解决&#xff1a; 第一步&#xff0c;删除字符串中多余的空格&#xff0c;removeSpaces函数中删除所有的空格&#xff0c;并手动在每个单词后添加一个空格&#xff0c;最后重构字符串s第二步&#xff0c;将整个字符串反转第三步&#xff0c;对反转后的字…...

Kotlin 重写与重载

文章目录 重写&#xff08;Override&#xff09;重载&#xff08;Overload&#xff09; 重写&#xff08;Override&#xff09; 重写通常是指子类覆盖父类的属性或方法&#xff0c;通常会标记为override&#xff1a; open class Base {open val name "Base"open f…...

关于高版本 Plant Simulation 每次保存是 提示提交comm对话框的处理方法

关于高版本 Plant Simulation 每次保存是 提示提交comm对话框的处理方法 如下图 将model saving history 修改为None即可 关于AutoCAD 2022 丢失模板库的问题 从新从以下地址打开即可&#xff1a; D:\Program Files\Autodesk\AutoCAD 2022\UserDataCache\zh-cn\Template...

C语言之旅:探索单链表

目录 一、前言 二、实现链表的功能&#xff1a; 打印 创建节点 尾插 尾删 头插 头删 查找 在指定位置之前插入数据 指定位置删除 在指定位置之后插入数据 打印 销毁 三、全部源码&#xff1a; 四、结语 一、前言 链表是一个强大且基础的数据结构。对于很多初…...

【安卓基础】-- 消息机制 Handler

目录 消息机制 Handler面试问题 消息机制 Handler 对handler机制的基本作用、用法、时序流程进行介绍&#xff0c;针对handler机制中的内存泄漏问题讲解&#xff1a;一篇读懂Android Handler机制 Android-Handler机制详解 全面解析 | Android之Handler机制 需要掌握的&#x…...

Optional 类

概述 到目前为止&#xff0c;臭名昭著的空指针异常是导致 Java 应用程序失败的最常见原因。以前&#xff0c;为了解决空指针异常&#xff0c;Google 公司著名的 Guava 项目引入了 Optional 类&#xff0c; Guava 通过使用检查空值的方式来防止代码污染&#xff0c;它鼓励程序员…...

自动微分技术在 AI for science 中的应用

本文简记我在学习自动微分相关技术时遇到的知识点。 反向传播和自动微分 以 NN 为代表的深度学习技术展现出了强大的参数拟合能力&#xff0c;人们通过堆叠固定的 layer 就能轻松设计出满足要求的参数拟合器。 例如&#xff0c;大部分图神经网络均基于消息传递的架构。在推理…...

ASM OMF single-file creation form 重命名

OMF下不能自动命名&#xff0c;需要重新命名的话&#xff1a;1 1. spfile 可以 create pfile from spfile 后再create spfile from pfile 2 redo&#xff1f; 3 datafile&#xff1f; Here are some details of the copy problem: a) You are not allowed to set the numbe…...

VGGNet

VGGNet CNN卷积网络的发展史 1. LetNet5(1998) 2. AlexNet(2012) 3. ZFNet(2013) 4. VGGNet(2014) 5. GoogLeNet(2014) 6. ResNet(2015) 7. DenseNet(2017) 8. EfficientNet(2019) 9. Vision Transformers(2020) 10. 自适应卷积网络(2021) 上面列出了发展到现在CNN的一些经典…...

SpringMVC:转发和重定向

1. 请求转发和重定向简介 参考该链接第9点 2. forward 返回下一个资源路径&#xff0c;请求转发固定格式&#xff1a;return "forward:资源路径"如 return "forward:/b" 此时为一次请求返回逻辑视图名称 返回逻辑视图不指定方式时都会默认使用请求转发in…...

961操作系统知识总结

部分图片可能无法显示&#xff0c;参考这里&#xff1a;https://zhuanlan.zhihu.com/p/701247894 961操作系统知识总结 一 操作系统概述 1. 操作系统的基本概念 重要操作系统类型&#xff1a;批处理操作系统(批量处理作业&#xff0c;单道批处理/多道批处理系统&#xff0c;用…...

电脑死机问题排查

情况描述&#xff1a;2024年6月2日下午16&#xff1a;04分电脑突然花屏死机&#xff0c;此情况之前遇到过三次&#xff0c;认为是腾讯会议录屏和系统自带录屏软件冲突导致。 报错信息&#xff1a;应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址…...

百度地图1

地图的基本操作 百度地图3.0文档 百度地图3.0实例中心 设置地图 centerAndZoom(center: Point, zoom: Number)设初始化地图,center类型为Point时&#xff0c;zoom必须赋值&#xff0c;范围3-19级&#xff0c; // 百度地图API功能var map new BMap.Map("map"); //…...

Ubuntu 24.04 LTS 安装Docker

1 更新软件包索引&#xff1a; sudo apt-get update 2 安装必要的软件包&#xff0c;以允许apt通过HTTPS使用仓库&#xff1a; sudo apt-get install apt-transport-https ca-certificates curl software-properties-common 3 添加Docker的官方GPG密钥&#xff1a; curl -fs…...

【架构设计】Java如何利用AOP实现幂等操作,防止客户端重复操作

1实现方案详解 在Java中,使用AOP(面向切面编程)来实现幂等操作是一个常见的做法,特别是当你想在不修改业务代码的情况下添加一些横切关注点(如日志、事务管理、安全性等)时。幂等操作指的是无论执行多少次,结果都是相同的操作。 为了利用AOP实现幂等操作以防止客户端重…...

笔记:美团的测试

0.先启动appium 1.编写代码 如下&#xff1a; from appium import webdriver from appium.webdriver.extensions.android.nativekey import AndroidKeydesired_caps {platformName: Android,platformVersion: 10,deviceName: :VOG_AL10,appPackage: com.sankuai.meituan,ap…...

【30天精通Prometheus:一站式监控实战指南】第15天:ipmi_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们&#x1f44b;   欢迎加入【30天精通Prometheus】专栏&#xff01;&#x1f4da; 在这里&#xff0c;我们将探索Prometheus的强大功能&#xff0c;并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。&#x1f680;   Prometheus是云原生和DevOps的…...

STM32F103借助ESP8266连接网络

ESP8266配置 STM32F103本身是不具备联网功能的&#xff0c;所以我们必须借助其他单片机来进行联网&#xff0c;然后让STM32与联网单片机通信&#xff0c;就可以实现STM32联网了。 本文借助的是ESP8266模块&#xff0c;其通过UART协议与STM32通信&#xff08;http://t.csdnimg.c…...

CBF文件:统一刷写流程的密钥与工程实践

1. CBF文件&#xff1a;汽车电子刷写的"万能钥匙" 第一次接触CBF文件是在2018年参与某新能源车厂的项目时。当时产线上几十种ECU&#xff08;电子控制单元&#xff09;需要刷写&#xff0c;每个供应商提供的刷写包格式五花八门——有的用HEX文件&#xff0c;有的用S1…...

2024通信工程师初级备考指南:综合能力与专业实务核心考点解析

1. 2024通信工程师初级考试概况 2024年通信工程师初级资格考试定于9月28日举行&#xff0c;采用机考形式&#xff0c;考试时间为上午8:30至12:30&#xff0c;总时长4小时。这个考试分为两个科目&#xff1a;《通信专业综合能力》和《通信专业实务》&#xff0c;两科连续考试&am…...

颠覆传统投资分析:TradingAgents-CN智能交易系统零门槛部署指南

颠覆传统投资分析&#xff1a;TradingAgents-CN智能交易系统零门槛部署指南 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 在金融科技迅猛发展的…...

GLM-4.7-Flash效果展示:中文诗歌格律检测+不合格处自动标注与修改建议

GLM-4.7-Flash效果展示&#xff1a;中文诗歌格律检测不合格处自动标注与修改建议 1. 引言&#xff1a;当AI遇见古典诗词 你有没有想过&#xff0c;让一个AI来当你的诗词老师&#xff1f;不是那种只会背诗的AI&#xff0c;而是能一眼看出你写的诗哪里平仄不对、哪里押韵出错的…...

Marp CLI元数据管理:如何优化SEO和社交媒体分享

Marp CLI元数据管理&#xff1a;如何优化SEO和社交媒体分享 【免费下载链接】marp-cli A CLI interface for Marp and Marpit based converters 项目地址: https://gitcode.com/gh_mirrors/ma/marp-cli Marp CLI是一款强大的命令行工具&#xff0c;让你仅用纯Markdown就…...

P3C黄山版突破式迁移指南:无缝升级Java代码规范检查体系

P3C黄山版突破式迁移指南&#xff1a;无缝升级Java代码规范检查体系 【免费下载链接】p3c Alibaba Java Coding Guidelines pmd implements and IDE plugin 项目地址: https://gitcode.com/gh_mirrors/p3/p3c 在Java开发团队中&#xff0c;代码规范检查工具的升级往往伴…...

RouterOS网桥VLAN实战:从零构建安全隔离的二层虚拟网络

1. VLAN基础与RouterOS网桥概述 刚接触网络管理的朋友可能经常听到"VLAN"这个词&#xff0c;但总觉得它神秘莫测。其实VLAN就像给一栋办公楼划分不同部门&#xff1a;财务部、研发部、市场部各自有独立的办公区域&#xff0c;既保证了隐私安全&#xff0c;又避免了相…...

BG3ModManager模组管理工具完全指南

BG3ModManager模组管理工具完全指南 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 一、初识BG3ModManager BG3ModManager作为《博德之门3》的专用模组管理工具&#xff0c;为玩家提供…...

2026年Win11强力清理工具推荐:安全无广告的C盘瘦身软件怎么选?

我是个学生党&#xff0c;笔记本电脑的C盘从买回来就没清理过&#xff0c;最近装新游戏时直接提示空间不足。网上搜“Win11强力清理工具推荐”&#xff0c;跳出来一堆软件&#xff0c;看着都挺好&#xff0c;但又怕下载到带捆绑、弹广告的流氓软件。我只是想要一个能真正把C盘腾…...

OLED多级菜单移植与设计实战

1. 低成本嵌入式项目的OLED多级菜单设计 第一次接触OLED多级菜单是在一个智能温控器的DIY项目里。当时为了给设备做个简单的交互界面&#xff0c;我试过各种方案&#xff0c;最后发现0.96寸的OLED屏配上多级菜单是最经济实惠的选择。这种组合特别适合预算有限但又需要基本人机交…...