如何用Python提取图片文字 | PIL识别图片文字教程

要使用 Python 识别图片中的文字,推荐使用 Pillow (PIL) 配合 Tesseract OCR 引擎(通过 pytesseract 库),以下是详细步骤:

pil识别图片文字


步骤 1:安装依赖

  1. 安装 Tesseract OCR(核心引擎):

    • Windows:下载安装包 UB-Mannheim/tesseract
    • MacOS:brew install tesseract
    • Linux (Debian/Ubuntu):sudo apt install tesseract-ocr
    • 语言包(如需要中文):
      sudo apt install tesseract-ocr-chi-sim(简体中文)
      sudo apt install tesseract-ocr-chi-tra(繁体中文)
  2. 安装 Python 库:

    pip install pillow pytesseract

步骤 2:Python 示例代码

from PIL import Image
import pytesseract
# 设置 Tesseract 路径(Windows 需要指定安装路径)
# pytesseract.pytesseract.tesseract_cmd = r'C:Program FilesTesseract-OCRtesseract.exe'
# 打开图片
image = Image.open('your_image.jpg')  # 替换为你的图片路径
# 识别文字(默认英文)
text = pytesseract.image_to_string(image)
# 识别中文(简体)
# text = pytesseract.image_to_string(image, lang='chi_sim')
print("识别结果:")
print(text)

常见问题解决

  1. 中文识别不准确:

    pil识别图片文字

    • 确保安装了中文语言包(如 tesseract-ocr-chi-sim)。
    • 使用 lang='chi_sim' 参数。
    • 优化图片质量(清晰、无反光、正对拍摄)。
  2. 报错 tesseract is not installed:

    • 检查 tesseract 是否在系统路径中。
    • Windows 需手动设置路径(取消注释代码中的 tesseract_cmd)。
  3. 提高识别精度:

    • 预处理图片:转为灰度、二值化、降噪。
    • 调整图片:使用图像处理库(如 OpenCV)增强对比度。
    • 指定区域识别:通过 image.crop((x, y, width, height)) 裁剪局部区域。

预处理增强示例

from PIL import Image, ImageFilter
# 打开图片并预处理
image = Image.open('your_image.jpg')
image = image.convert('L')  # 转为灰度
image = image.filter(ImageFilter.SHARPEN)  # 锐化
image = image.point(lambda x: 0 if x < 140 else 255)  # 二值化
# 识别文字
text = pytesseract.image_to_string(image, lang='chi_sim')
print(text)

替代方案:第三方 API

如果本地识别效果不佳,可使用在线 OCR API:

pil识别图片文字

  1. 百度 OCR:高精度中文识别(有免费额度)
  2. Google Vision:英文识别效果好
  3. 腾讯 OCR:支持多语言

提示:在线 API 需处理网络请求和隐私问题。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/294241.html

赞 (0)
上一篇 2026年2月12日 15:20
下一篇 2026年2月12日 15:26

相关推荐

  • 8卡H200服务器卡是什么卡,H200显卡性能到底多强

    8卡H200服务器就是搭载8块NVIDIA H200 GPU的服务器,是目前大模型训练和推理的顶级算力平台,其核心升级在于HBM3e高带宽内存,能装下更大参数模型,H200是什么?和H100区别在哪H200是NVIDIA在Hopper架构上的迭代,和H100共享同一代架构,但内存子系统彻底换血,它用上了HBM3……

    2026年8月23日
    05085
  • 上海宽带网上营业厅怎么登录?上海宽带网上营业厅登录入口

    高效、透明、一站式数字服务新标杆上海宽带网上营业厅作为本地数字化服务的重要载体,已全面升级为集业务办理、网络诊断、套餐定制、故障报修、账单查询于一体的智能服务平台,其核心价值在于:用户足不出户即可完成95%以上日常宽带服务操作,平均办理时长缩短至3分钟以内,服务满意度连续12个月超98%,本文将从平台能力、用户……

    2026年4月16日
    07615
  • 网吧多少兆宽带合适?网吧宽带多少兆够用

    必须优先保障“低延迟”与“高并发稳定性”,而非单纯追求高带宽数值,对于网吧运营而言,1000 兆(1G)宽带是当前的入门基准线,但单纯购买高带宽并不等于拥有优质网络体验,真正的核心在于网络架构的抗拥堵能力与游戏节点的直连质量,在高峰期,若网络抖动超过 20ms,即便带宽再大,玩家体验也会瞬间崩塌,选择网吧宽带不……

    2026年4月29日
    07553
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 大模型微调显存爆了怎么减少占用,大模型微调显存不够

    通过启用混合精度训练、梯度检查点、LoRA/QLoRA参数高效微调技术,并配合优化器状态压缩与显存卸载策略,可将显存占用降低60%-90%,从而在消费级显卡上实现主流大模型的微调任务,在大模型应用落地的2026年,显存瓶颈依然是制约开发者迭代效率的最大阻碍,随着模型参数规模向万亿级迈进,传统的全量微调(Full……

    2026年6月17日
    02410

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(5条)

  • smart220的头像
    smart220 2026年2月14日 21:46

    这篇教程太及时了!跟着步骤试了下用Pillow+Tesseract识别发票文字,省去了手动输入的麻烦。不过中文识别偶尔会串行,感觉加个图像预处理会更准,期待作者后续优化技巧~

    • kind199fan的头像
      kind199fan 2026年2月14日 21:59

      @smart220:对啊,跟着教程试了确实省时!中文识别串行我也遇到过,感觉加个图像预处理像去噪或调亮度会好很多,我自己试过裁剪多余部分也有帮助。期待作者的新技巧~

  • 茶bot920的头像
    茶bot920 2026年2月14日 22:13

    这篇教程太实用了!我之前一直手动敲图片里的文字,效率低还容易出错。原来用Python+OCR这么简单就能搞定,步骤讲得也清晰,Pillow和Tesseract的组合确实方便。这下处理扫描文档或者截图里的文字就省心多了,收藏起来下次直接抄作业!

  • 山山8246的头像
    山山8246 2026年2月14日 22:26

    这个教程真实用!我之前也用PIL和Tesseract提取过图片文字,组合起来识别效果挺准的,特别适合处理文档扫描。步骤写得简单清晰,新手照着做肯定能上手,不过复杂图片有时需要多调整参数。

  • 树鹰9519的头像
    树鹰9519 2026年2月14日 22:48

    这篇文章太实用了!我刚用PIL和pytesseract试了下,提取图片文字又快又准,以前手动打字累死人,现在省了好多时间。教程步骤很清楚,新手也能轻松上手,真心感谢分享!