Windows10anaconda安装模块tesserocr

2019-07-26 17:45:05 浏览数 (1)

OCR

OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。对于图形验证码来说,它们都是一些不规则的字符,这些字符确实是由字符稍加扭曲变换得到的内容。

tesserocr是Python的一个OCR识别库,但其实是对tesseract做了一层Python API的封装,所以它的核心是tesseract。因此,在安装tesserocr之前,我们需要先安装tesseract。

Windows下的安装

在Windows下,首先需要下载tesseract,它为tesserocr提供了支持。

tesseract下载地址:http://digi.bib.uni-mannheim.de/tesseract

进入下载页面,可以看到有各种.exe文件的下载列表,这里可以选择下载4.0的版本。

其中文件名带dev的为开发版本,不带dev的为稳定版本,可以选择下载不带dev的稳定版本。

下载完成后双击,此时会出现如图所示的页面。

此时可以勾选Additional language data(download)选项来安OCR识别支持的语言包,这样OCR便可以识别多国语言。然后一路点击Next安装即可。安装完成之后需要配置两个环境变量:path里面添加一个值:安装路径,然后设置一个新变量名为TESSDATA_PREFIX,值是语言包(一个名为tessdata的文件夹,应该在安装目录)的目录。

接下来,再安装tesserocr即可,此时直接使用pip安装:

pip install tesserocr pillow

Windows10cmd执行完命令之后会出现如图所示的错误。

具体怎么解决这个问题,我也尝试了很多办法,在这里我直接给出正确的解决方案。参考:https://anaconda.org/simonflueckiger/tesserocr,直接使用conda安装:

conda install -c simonflueckiger/label/tesseract-4.0.0-master tesserocr

验证安装

接下来,我们可以用tesseract和tesserocr来分别进行测试。下面我们以如图所示的图片为样例进行测试。

首先在命令行用tesseract命令进行测试:

tesseract ChenZhiHao.png result -l eng && type result.txt

运行结果如下:

这里我们调用了tesseract命令,其中第一个参数为图片名称,第二个参数result为结果保存的目标文件的名称,-l指定使用的语言包,在此使用英文(eng)。然后再用type命令将结果输出。

运行结果便是图片的识别结果:ChenZhiHao。可以看到,这时已经成功将图片文字转为电子文本了。

然后还可以利用Python代码来测试,这里就需要借助tesserocr库了,测试代码如下。

代码语言:javascript复制
  import tesserocr
  from PIL import Image
  image = Image.open('ChenZhiHao.png')
  print(tesserocr.image_to_text(image))

运行结果:

另外我们还可以直接调用file_to_text()方法,这可以达到同样的效果:

代码语言:javascript复制
  import tesserocr
  print(tesserocr.file_to_text('ChenZhiHao.png'))

运行结果:

如果成功输出结果,则证明tesseract和tesserocr都已经安装成功。

0 人点赞