Python实现图片识别:Pillow与Pytesser配置详解
本文介绍如何使用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程序设计有所帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













