【OCR】实战使用 - ocr 识别图片中的文字

news/2025/2/12 8:58:39/

实战使用 - ocr 识别图片中的文字

在Python中,OCR(Optical Character Recognition,光学字符识别)通常使用一些开源库来实现,如 pytesseract、Tesseract、PIL(Python Imaging Library)等。以下是一个基本的示例,说明如何使用pytesseract和PIL库来识别图片中的文字:

import pytesseract
from PIL import Image# 打开图片文件
image = Image.open('your_image_file_path.jpg')# 将图片转换为灰度图像以提高识别效果
gray_image = image.convert('L')# 使用pytesseract进行文字识别
text = pytesseract.image_to_string(gray_image)# 打印识别出的文字
print(text)# 如果你还需要保存处理后的图像,可以使用以下代码:
gray_image.save('processed_image.png')

在这个示例中:

  1. 首先导入所需的库。
  2. 使用Image.open()函数打开图片文件。
  3. 使用convert()函数将图片转换为灰度图像,这有助于提高OCR的识别准确率。
  4. 使用pytesseract.image_to_string()函数对图像进行文字识别,并将结果存储在text变量中。
  5. 打印识别出的文字。
  6. 如果需要保存处理后的图像(这里是灰度图像),可以使用save()函数。

注意:

  • 确保已经安装了Tesseract OCR引擎以及相关的语言数据包。你可以通过以下命令安装Tesseract(假设你已经安装了Homebrew):
brew install tesseract
  • 安装 pytesseract 库:
pip install pytesseract
  • 根据你的系统和Tesseract的安装位置,可能需要在使用pytesseract时指定Tesseract的路径。
  • Tesseract的识别效果可能会受到图片质量、文字清晰度、字体类型和大小等因素的影响。对于复杂的图像或特定类型的文本,可能需要进行额外的预处理步骤或使用更高级的OCR技术。
    设置识别文字的语言
    在使用Tesseract OCR进行文字识别时,你可以通过以下方式设置识别的语言:
import pytesseract# 设置识别语言为中文(简体)
pytesseract.pytesseract.tesseract_cmd = '/usr/bin/tesseract'  # 如果需要指定Tesseract路径
language = 'chi_sim'  # 中文(简体)的语言代码# 打开图片文件
image = Image.open('your_image_file_path.jpg')# 将图片转换为灰度图像以提高识别效果
gray_image = image.convert('L')# 使用pytesseract进行文字识别,同时指定识别语言
text = pytesseract.image_to_string(gray_image, lang=language)# 打印识别出的文字
print(text)

在这个示例中,我们设置了识别语言为中文(简体),语言代码为chi_sim。你需要根据你想要识别的语言来更改这个代码。
以下是一些常见语言的Tesseract语言代码:

  • 英语:eng
  • 简体中文:chi_sim
  • 繁体中文:chi_tra
  • 法语:fra
  • 德语:deu
  • 日语:jpn
  • 韩语:kor

如果你需要识别的语言不在这个列表中,你可以通过运行Tesseract命令行工具并输入tesseract --list-langs来查看所有支持的语言。

请注意,为了识别特定语言的文字,你需要在你的系统上安装相应的Tesseract语言数据包。这些数据包通常可以通过Tesseract的安装程序或者单独下载安装。

如果你不知道如何安装Tesseract语言数据包,可以参考我之前的文章:
【OCR】 - Tesseract OCR在mac系统中安装
【OCR】 - Tesseract OCR在Windows系统中安装


http://www.ppmy.cn/news/1299197.html

相关文章

python每日学14:类可以截获python运算符

背景:背景:今天继续学习《python学习手册》第27章《类代码编写基础》,今天学习内容为791——793页。 昨天晚上看直播看到很久才睡学,今天学习时感觉很困,根本看不进书。以后还是要保证好睡眠。 上一章写到类和模块不同…

04、Kafka ------ 各个功能的作用解释(Cluster、集群、Broker、位移主题、复制因子、领导者副本、主题)

目录 启动命令:CMAK的用法★ 在CMAK中添加 Cluster★ 在CMAK中查看指定集群★ 在CMAK中查看 Broker★ 位移主题★ 复制因子★ 领导者副本和追随者副本★ 查看主题 启动命令: 1、启动 zookeeper 服务器端 小黑窗输入命令: zkServer 2、启动 …

【AI之路】使用huggingface_hub通过huggingface镜像站hf-mirror.com下载大模型(附代码,实现大模型自由)

文章目录 前言一、Hugging face是什么?二、huggingface镜像站hf-mirror.com三、大模型一键下载1. 准备工作2. 下载代码 总结后记 前言 要玩AI大模型,Hugging face 不可错过,但资源虽不错,可奈何国内下载速度很慢,动则…

2024--Django平台开发-Django知识点(三)

day03 django知识点 项目相关路由相关 urls.py视图相关 views.py模版相关 templates资源相关 static/media 1.项目相关 新项目 开发时,可能遇到使用其他的版本。虚拟环境 老项目 打开项目虚拟环境 1.1 关于新项目 1.系统解释器命令行【学习】 C:/python38- p…

【leetcode100-033】【链表】排序链表

【题干】 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 【思路】 递归版归并法链表版~没什么特别好说的(非递归版归并也是可以哒,但是马上要考试了今天懒得写了!打个flag在这里也许哪天想起来…

2024-01-01 K 次取反后最大化的数组和和加油站以及根据身高重建队列

1005. K 次取反后最大化的数组和 思路:每一次取反最小值即可!贪心的思路就是先排序,反转负数的值,后在贪心反转最小值 class Solution:def largestSumAfterKNegations(self, nums: List[int], k: int) -> int:count 0while …

@DependsOn:解析 Spring 中的依赖关系之艺术

欢迎来到我的博客,代码的世界里,每一行都是一个故事 DependsOn:解析 Spring 中的依赖关系之艺术 前言简介基础用法高级用法在 XML 配置中使用 DependsOn通过 Java Config 配置实现依赖管理 生命周期与初始化顺序Bean 生命周期的关键阶段&…

Java微服务系列之 ShardingSphere - ShardingSphere-JDBC

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 系列专栏目录 [Java项…