用 Python 把图片变文字_Python

你遇到以下的情况吗?

你负责整理一些文件,结果发现文件没有word存档,这又需要我们把图片变成word。

如果你遇到过这些问题,千万不要错过 pytesseract 这个好工具!它能够用很简单、基础的方法将图片转换成文字(分辨图片中的文字)。在我们开始介绍 pytesseract 这个 Python 模块之前,先来认识一下 Tesseract OCR 到底是什么吧!

OCR 为光学文字识别的缩写(Optical Character Recognition,OCR),白话一点就是将图片翻译为文字。

而 Tesseract 是一个 OCR 模组,目前由 Google 赞助。Tesseract 已经有 30 年历史,一开始它是惠普实验室的一款专利软体,于 2005 年开源,从 2006 年后由 Google 赞助进行后续的开发和维护, Tesseract 也是目前公认最优秀、最精准的开源 OCR 系统。

除了极高的精准度外,Tesseract 也有很高的灵活性,能够通过训练识别出任何字体(只要这些字体的风格不变就可以),也能识别出任何 Unicode 字符,是不是非常厉害呢?我们待会会用到的 pytesseract 模块就像是Tesseract的 python 包。

下面让我们来动手尝试下:

第一步 安装模块

pip3 install pillowpip3 install pytesseract

第二步 编写程序

from PIL import Imageimport pytesseractimg = Image.open('test1.png')text = pytesseract.image_to_string(img,)print(text)

首先,第一行和第二行是将我们刚刚安装的模块导入到程序中。

PIL 包含在刚刚安装的 pillow 模组,其中的 Image 模组能够读取图片档。

我们将想要转成文字的图片档,放在和这支程式相同的目录。

第四行的 'test1.png' 是相对于这个程序(.py文件)的路径,也就是该图片的文件名,因此必须放在同一个资料夹程序才找得到文件,而且文件名与路径名都是不可省略的。

所有辨识文字、转换的複杂过程全部都写在 pytesseract 中了,我们只需要知道如何调用即可。接著看到第五行,image_to_string函式有一个关键字引数 lang,默认是英文,可以改变成你想要的语言字串。

简单暴力,5行代码就可以将图片转化为文字,是不是很方便呢?

除了生活中的一些小问题能用 pytesseract 解决,在开发爬虫程序时,经常会遇到需要验证码的情况,这时就能利用这个模块轻松解决。