返回 登录
0

我笑了...pytesseract是这么简单的model

概要


Python语言中,pytesseract是用于验证码、字符识别的常用model。研究OCR期间,接触到这个模块。深究其源码,才明白,这个库是如此简单。

安装:
首先安装依赖:PIL、Image、tesseract-ocr,然后:

pip install pytesseract

pytesseract在官网上说了自己是个wrapper,真正干活的是tesseract-ocr,即tesseract光学字符识别引擎。所以,这个模块就是个接口。


Tesserarct识别引擎


esseract-ocr是Google在维护的一个开源项目,本体是HP实验室在1993年完成的,功能强大。(关于更多,见结尾提示。)

在Tesseract的世界里,有且只有一条命令,展示了其强大功能:

Usage:
tesseract imagename|stdin outputbase|stdout [options…] [configfile…]

举例来说,对一张需要识别的chinese.png图片:
图片描述

在cmd/terminal输入:tesseract chinese.png output -l chi_sim (*式)

就可以得到如下output.txt文本:
图片描述

如此简单纯粹,缺点就是单线程。


pytesseract模块


这是一个Wrapper:

Python-tesseract is a python wrapper for google’s Tesseract-OCR

所以,其底层就是Tesseract识别引擎,只是用Python语言来封装罢了。那么,封装的过程是怎样的呢?
图片描述

我知道这5步中的关键方法(functions)在各位读者眼里并不是那么通俗易懂。BUT!认真的读者只要去看pytesseract模块的源码(only 202 lines)就能知道这些函数。

Anyway,请看第3步,在run_tesseract()函数“拼接好tesseract本地调用命令”。什么是本地调用命令?

还记得上面的(*式)嘛?

tesseract chinese.png output -l chi_sim

再看第4步,“执行调用命令”,就是把(*式)放在cmd/terminal里。

就这样,对于上述chinese.png,也可以得到output.txt文件了。

至此,就是为什么我说“pytesseract是这么简单的model”……


结语


我笑了…是的,只是开心而已!第一次解析Python的Model,以前pip install model’name 的时候,内心觉得官方源码一定很难,现在看倒未必!

此后,希望大家多多阅读源码,没有那么难的。

欢迎关注我的微信公众号“谷震平的专栏”,长按下面的二维码即可关注:

二维码

想了解更多Tesseract的朋友,可关注微信公众号并回复“T的简介”;
想阅读pytesseract源码的朋友,可关注微信公众号并回复“PYT源码”。

评论