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正则表达式抓取成语网站
Nov 20 Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 Python
使用python和Django完成博客数据库的迁移方法
Jan 05 Python
python中使用iterrows()对dataframe进行遍历的实例
Jun 09 Python
python让列表倒序输出的实例
Jun 25 Python
Python中分支语句与循环语句实例详解
Sep 13 Python
Python实现简单的用户交互方法详解
Sep 25 Python
python执行CMD指令,并获取返回的方法
Dec 19 Python
基于python实现KNN分类算法
Apr 23 Python
Python多线程原理与用法实例剖析
Jan 22 Python
python实现H2O中的随机森林算法介绍及其项目实战
Aug 29 Python
PYQT5 vscode联合操作qtdesigner的方法
Mar 24 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删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
PHP调用Mailgun发送邮件的方法
2017/05/04 PHP
jquery 插件学习(二)
2012/08/06 Javascript
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
jquery实现全选功能效果的实现代码
2016/05/05 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
2019/04/17 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
[48:31]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第一场 2月2日
2021/03/11 DOTA
python之wxPython菜单使用详解
2014/09/28 Python
python内置数据类型之列表操作
2018/11/12 Python
python获取服务器响应cookie的实例
2018/12/28 Python
Python实现最常见加密方式详解
2019/07/13 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
python使用配置文件过程详解
2019/12/28 Python
Python中的整除和取模实例
2020/06/03 Python
Python3如何使用tabulate打印数据
2020/09/25 Python
德国黑胶唱片、街头服装及运动鞋网上商店:HHV
2018/08/24 全球购物
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
应聘自荐信
2013/12/14 职场文书
会计岗位职责范本
2014/03/07 职场文书
师范大学生求职信
2014/06/13 职场文书
专科生就业求职信
2014/06/22 职场文书
最新离婚协议书范本
2014/08/19 职场文书
未婚证明书模板
2014/10/08 职场文书
经费申请报告范文
2015/05/18 职场文书
千手观音观后感
2015/06/03 职场文书
工作收入证明模板
2015/06/12 职场文书
学历证明样本
2015/06/16 职场文书