python实现验证码识别功能


Posted in Python onJune 07, 2018

本文实例为大家分享了python实现验证码识别的具体代码,供大家参考,具体内容如下

1.通过二值化处理去掉干扰线

2.对黑白图片进行降噪,去掉那些单独的黑色像素点

3.消除边框上附着的黑色像素点

4.识别图像中的文字,去掉空格与'.'

python代码:

from PIL import Image 
from aip import AipOcr 
 
file='1-1-7' 
 
# 二值化处理,转化为黑白图片 
def two_value(): 
 for i in range(1, 5): 
 # 打开文件夹中的图片 
 image = Image.open(file+'.jpg') 
 # 灰度图 
 lim = image.convert('L') 
 # 灰度阈值设为165,低于这个值的点全部填白色 
 threshold = 165 
 table = [] 
 
 for j in range(256): 
  if j < threshold: 
  table.append(0) 
  else: 
  table.append(1) 
 
 bim = lim.point(table, '1') 
 bim.save(file+'.1.jpg') 
 
two_value() 
 
# 去除干扰线 
im = Image.open(file+'.1.jpg') 
# 图像二值化 
data = im.getdata() 
w, h = im.size 
black_point = 0 
 
for x in range(1, w - 1): 
 for y in range(1, h - 1): 
 mid_pixel = data[w * y + x] # 中央像素点像素值 
 if mid_pixel < 50: # 找出上下左右四个方向像素点像素值 
  top_pixel = data[w * (y - 1) + x] 
  left_pixel = data[w * y + (x - 1)] 
  down_pixel = data[w * (y + 1) + x] 
  right_pixel = data[w * y + (x + 1)] 
 
  # 判断上下左右的黑色像素点总个数 
  if top_pixel < 5: #小于5比小于10更精确 
  black_point += 1 
  if left_pixel < 5: 
  black_point += 1 
  if down_pixel < 5: 
  black_point += 1 
  if right_pixel < 5: 
  black_point += 1 
  if black_point < 1: 
  im.putpixel((x, y), 255) 
  # print(black_point) 
  black_point = 0 
 
im.save(file+'.2.jpg') 
 
# 去除干扰线 
im = Image.open(file+'.2.jpg') 
# 图像二值化 
data = im.getdata() 
w, h = im.size 
black_point = 0 
 
for x in range(1, w - 1): 
 for y in range(1, h - 1): 
 if x < 2 or y < 2: 
  im.putpixel((x - 1, y - 1), 255) 
 if x > w - 3 or y > h - 3: 
  im.putpixel((x + 1, y + 1), 255) 
 
im.save(file+'.3.jpg') 
 
# 定义常量 
APP_ID = '11352343' 
API_KEY = 'Nd5Z1NkGoLDvHwBnD2bFLpCE' 
SECRET_KEY = 'A9FsnnPj1Ys2Gof70SNgYo23hKOIK8Os' 
 
# 初始化AipFace对象 
aipOcr = AipOcr(APP_ID, API_KEY, SECRET_KEY) 
 
# 读取图片 
filePath=file+'.3.jpg' 
def get_file_content(filePath): 
 with open(filePath, 'rb') as fp: 
 return fp.read() 
 
# 定义参数变量 
options = { 
 'detect_direction': 'true', 
 'language_type': 'CHN_ENG', 
} 
 
# 调用通用文字识别接口 
result = aipOcr.basicGeneral(get_file_content(filePath), options) 
print(result) 
words_result=result['words_result'] 
for i in range(len(words_result)): 
 print(words_result[i]['words'].replace(' ','').replace('.','')) #去掉可能被识别的空格与.

python实现验证码识别功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python类和函数中使用静态变量的方法
May 09 Python
python 字符串和整数的转换方法
Jun 25 Python
Python实现基于PIL和tesseract的验证码识别功能示例
Jul 11 Python
Python 给某个文件名添加时间戳的方法
Oct 16 Python
对Python3 解析html的几种操作方式小结
Feb 16 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
keras 多gpu并行运行案例
Jun 10 Python
windows支持哪个版本的python
Jul 03 Python
如何用Matplotlib 画三维图的示例代码
Jul 28 Python
python对 MySQL 数据库进行增删改查的脚本
Oct 22 Python
Python趣味爬虫之用Python实现智慧校园一键评教
May 28 Python
Python中tqdm的使用和例子
Sep 23 Python
通过Pandas读取大文件的实例
Jun 07 #Python
Pandas:DataFrame对象的基础操作方法
Jun 07 #Python
Python中偏函数用法示例
Jun 07 #Python
网红编程语言Python将纳入高考你怎么看?
Jun 07 #Python
python指定写入文件时的编码格式方法
Jun 07 #Python
Python实现的爬虫刷回复功能示例
Jun 07 #Python
异步任务队列Celery在Django中的使用方法
Jun 07 #Python
You might like
PHP 的 __FILE__ 常量
2007/01/15 PHP
php知道与问问的采集插件代码
2010/10/12 PHP
使用session判断用户登录用户权限(超简单)
2013/06/08 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
2007/08/19 Javascript
从零开始学习jQuery (六) jquery中的AJAX使用
2011/02/23 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
微信小程序 生命周期函数详解
2017/05/24 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
python开发利器之ulipad的使用实践
2017/03/16 Python
Python 爬虫图片简单实现
2017/06/01 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
python中执行smtplib失败的处理方法
2020/07/01 Python
Python中logger日志模块详解
2020/08/04 Python
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
钳工实习自我鉴定
2013/09/19 职场文书
旅游管理专业大学生职业规划书
2014/02/27 职场文书
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
2015年六一儿童节活动方案
2015/05/05 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server