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之PyUnit单元测试实例
Oct 11 Python
使用grappelli为django admin后台添加模板
Nov 18 Python
Python中模拟enum枚举类型的5种方法分享
Nov 22 Python
Python编程之多态用法实例详解
May 19 Python
Python实现随机选择元素功能
Sep 14 Python
python操作excel的包(openpyxl、xlsxwriter)
Jun 11 Python
Python实现高斯函数的三维显示方法
Dec 29 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
numpy.transpose()实现数组的转置例子
Dec 02 Python
Python实现自动打开电脑应用的示例代码
Apr 17 Python
使用Python构造hive insert语句说明
Jun 06 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
Jul 09 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进行MySQL删除记录操作代码
2008/06/07 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
2019/02/20 PHP
javascript中的对象创建 实例附注释
2011/02/08 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
canvas 画布在主流浏览器中的尺寸限制详细介绍
2016/12/15 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
Tensorflow设置显存自适应,显存比例的操作
2020/02/03 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
2020/03/24 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
HTML5标签小集
2011/08/02 HTML / CSS
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
中专生职业生涯规划书范文
2013/12/29 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
餐厅采购员岗位职责
2014/03/06 职场文书
搞笑婚前保证书
2015/02/28 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
亲戚关系证明
2015/06/24 职场文书
2016年3月份红领巾广播稿
2015/12/21 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
初中政治教学反思
2016/02/23 职场文书
深入理解Vue的数据响应式
2021/05/15 Vue.js
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS