Python实现图片识别:Pillow与Pytesser配置详解

向北走
向北走
发布时间:2026-10-13 | 1人浏览过
原创

本文介绍如何使用Python进行图片识别。首先解决PIL在Windows 64位下的兼容问题,推荐使用Pillow替代。接着详细讲解Pytesser库的安装与配置,包括路径设置和tesseract可执行文件指向。最后提供测试代码及图片预处理(黑白、降噪)示例,并指出该方法对系统验证码识别率较低。

本文介绍利用Python编程实现图片识别功能的具体方法,供读者参考学习。

第一步:安装PIL库。由于官方未提供Windows 64位版本,建议使用Pillow进行替代。

执行命令:pip install Pillow-2.7.0-cp27-none-win_amd64.whl

第二步:安装Pytesser库。

下载pytesser_v0.0.1.zip压缩包,解压后将内容复制到Python27\Lib\site-packges\pytesser目录下。若该目录不存在,需手动新建。

在Python27\Lib\site-packges\pytesser目录中新建一个名为pytesser.pth的文件,文件内容仅包含字符串pytesser。

接下来需要对pytesser目录下的文件进行三点修改:

① 将pytesser.py文件重命名为__init__.py。

② 修改pytesser.py文件中的配置。

import Image

具体修改方式如下:

from PIL import Image

将变量tesseract_exe_name的值从'tesseract'修改为'tesseract',注意路径中的反斜杠需要转义,即改为:tesseract_exe_name = 'Python27\\Lib\\site-packges\\pytesser\\tesseract'。

③ 安装Tesseract OCR引擎。

从http://code.google.com/p/tesseract-ocr/ 下载Tesseract OCR engine。

下载完成后解压,找到其中的tessdata文件夹,使用该文件夹替换pytesser解压目录下的tessdata文件夹。

需要注意的是,除了简单的测试用验证码外,该方案对大多数系统验证码的识别率较低。

以下是测试代码示例。

from pytesser import *
from PIL import Image, ImageEnhance
im = Image.open('D:\Python27\Lib\site-packages\pytesser\phototest.tif')
im2 = Image.open(r'D:\Python27\Lib\site-packages\pytesser\fnord.tif','r')
im3 = Image.open(r'F:\PROJECT\python\code\Study_1\src\20170424\cp.jpg','r') #文件读写模式以防报错
#图片处理1::黑白处理
enhancer = ImageEnhance.Contrast(im3)
image2 = enhancer.enhance(5)
image2.show()
print image_to_string(image2)
#图片处理2: 降噪处理
imgry = im3.convert('L')  #灰度处理
#灰度处理基础上二值化处理
threshold = 140
table = []
for i in range(256):
  if i < threshold:
    table.append(0)
  else:
    table.append(1)
out = imgry.point(table, '1')
out.show()
text = image_to_string(out)
if text.isspace() :
  print "FAILE"
else:
  print text
#print text

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表