Python编程实现的图片识别功能示例


Posted in Python onAugust 03, 2017

本文实例讲述了Python编程实现的图片识别功能。分享给大家供大家参考,具体如下:

1. 安装PIL,官方没有WIN64位,Pillow替代

pip install Pillow-2.7.0-cp27-none-win_amd64.whl

2. 安装Pytesser

下载pytesser_v0.0.1.zip,解压后复制进Python27\Lib\site-packges\pytesser路径下,无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_exe_name = 'Python27\\Lib\\site-packges\\pytesser\\tesseract' 注意\转义

③ 安装Tesseract

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

下载后解压,找到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分割列表(list)的方法示例
May 07 Python
python添加模块搜索路径方法
Sep 11 Python
解决Python获取字典dict中不存在的值时出错问题
Oct 17 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
Dec 20 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
Nov 30 Python
PyTorch和Keras计算模型参数的例子
Jan 02 Python
Python基于read(size)方法读取超大文件
Mar 12 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
Mar 14 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
Jun 24 Python
python中字符串的编码与解码详析
Dec 03 Python
详解Python中的Lock和Rlock
Jan 26 Python
MATLAB 全景图切割及盒图显示的实现步骤
May 14 Python
详解python实现读取邮件数据并下载附件的实例
Aug 03 #Python
详解 Python中LEGB和闭包及装饰器
Aug 03 #Python
Python 爬虫之超链接 url中含有中文出错及解决办法
Aug 03 #Python
python中MethodType方法介绍与使用示例
Aug 03 #Python
初学python的操作难点总结(新手必看篇)
Aug 03 #Python
python 禁止函数修改列表的实现方法
Aug 03 #Python
详解Python函数可变参数定义及其参数传递方式
Aug 02 #Python
You might like
PHP中source #N问题的解决方法
2014/01/27 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
thinkphp5 模型实例化获得数据对象的教程
2019/10/18 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
javascript event 事件解析
2011/01/31 Javascript
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
vue+node+webpack环境搭建教程
2017/11/05 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
简单介绍Python中的round()方法
2015/05/15 Python
python通过get,post方式发送http请求和接收http响应的方法
2015/05/26 Python
python中的闭包函数
2018/02/09 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
三个Unix的命令面试题
2015/04/12 面试题
工作失误检讨书范文大全
2014/01/13 职场文书
用人单位聘用意向书
2015/05/11 职场文书
导游词之湖北武当山
2019/09/23 职场文书
解决flex布局中子项目尺寸不受flex-shrink限制
2022/05/11 HTML / CSS
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript