打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用Python&Tesseract识别图片文字

作者:刘志军,6年+Python使用经验, 高级开发工程师,目前在互联网医疗行业从事Web系统构架工作

个人公众号:Python之禅(微信ID:vttalk)

题图:https://unsplash.com/@alvaroserrano

在一个项目中遇到这样的需求,要把一堆图片中的文字识别出来并分门别类地保存数据库,上万字纯手工敲是下下策,网上有很多图片转文字的在线服务,单张图转没什么问题,可惜大批量的图缺乏定制化,爱捣鼓的程序员还是自己动手靠谱,开源项目 Tesseract 专用于 OCR 识别,它的应用场景非常多,比如验证码识别、车牌识别、普通的文字图片识别都不是问题。

安装

Linux 和 Mac 平台的安装非常简单,直接命令行安装即可,默认只有英文语言包,汉语包需要额外指定

sudo apt-get install tesseract-ocr  # ubuntu

brew install tesseract  # macOS

Windows 平台需要二进制安装包,官方下载地址 https://github.com/tesseract-ocr/tesseract/wiki/4.0-with-LSTM#400-alpha-for-windows,安装时需要选择中文语言包才是识别汉字

配置

安装完成后,需要设置两个环境变量 $PATH 和 $TESSDATA_PREFIX,如果不指定后面会报错,把 tessertact 的安装路径加入 PATH 变量中,TESSDATA_PREFIX 变量的值指定为语言包的路径

实战

Python-tesseract 是 tessertact 的 Python 封装包,它需要依赖图片处理库 PIL(Pillow),环境搭建完成后就可以开始做定制化开发了。

以下我以杜甫的《登高》作为 demo 从中提取出其中的文字

# pip install pytesseract 先安装依赖包
try:
   import Image
except ImportError:
   from PIL import Image
import pytesseract
# lang 指定中文简体
text = pytesseract.image_to_string(Image.open('dufu-denggao1.jpeg'), lang='chi_sim')
print(text)

输出结果:

风 急 天 高 猿 哨 哀 , 渚 清 沙 白 鸟 飞 回 。无 边 落 木 萧 萧 下 , 不 尽 长 江 滚 滚 来 。万 里 悲 秋 常 作 客 , 百 年 多 病 独 登 台 。艰 难 苦 恨 繁 霜 鬓 , 漫 倒 新 停 浊 酒 杯 。

你可以根据自己的业务需求进行自定义开发,为了适应不同的环境下的图片,你可能需要了解更多 Tesseract 的API,以此来提高文字识别的准确率。 如果你有兴趣,甚至基于公众号开发,用户上传图片,自动识别出文字,提供收费服务也不是没有可能。

关于Tesseract

Tesseract 有超过 30 年的历史,它最早诞生于HP实验室,在 2005 年,Tesseract由美国内华达州信息技术研究所获得,其后由 Google 赞助进行后续的开发和维护。

下面的几篇 Tesseract 相关的论文非常适合研究生做课题设计

  • WIKI:https://github.com/tesseract-ocr/tesseract/wiki

  • 论文:https://github.com/lzjun567/the-Papers-and-Data-of-Tesseract-OCR-


Python爱好者社区历史文章大合集

Python爱好者社区历史文章列表(每周append更新一次)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
实用工具:使用python识别图片中的文字
不调用三方收费接口,照样实现了识别图片为文字的功能!
python 识别图片上的数字
Python提取图片中的文字信息,腾讯内部技术,一行代码搞定!
不想打字?用 Python 把图片变文字
tesseract-OCR + pytesseract安装
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服