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实现的下载8000首儿歌的代码分享
Nov 21 Python
Python脚本实现格式化css文件
Apr 08 Python
Python生成随机密码的方法
Jun 16 Python
django之session与分页(实例讲解)
Nov 13 Python
使用python爬取微博数据打造一颗“心”
Jun 28 Python
自定义django admin model表单提交的例子
Aug 23 Python
python-tornado的接口用swagger进行包装的实例
Aug 29 Python
pytorch中使用cuda扩展的实现示例
Feb 12 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
Sep 03 Python
基于Python组装jmx并调用JMeter实现压力测试
Nov 03 Python
Python数据分析库pandas高级接口dt的使用详解
Dec 11 Python
Python matplotlib 利用随机函数生成变化图形
Apr 26 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
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
详解PHP队列的实现
2019/03/14 PHP
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
jQuery UI Autocomplete 体验分享
2012/02/14 Javascript
JS和函数式语言的三特性
2014/03/05 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
javascript显示中文日期的方法
2015/06/18 Javascript
JS实现点击上移下移LI行数据的方法
2015/08/05 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
bootstrap中的 form表单属性role=&quot;form&quot;的作用详解
2017/01/20 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
Node 自动化部署的方法
2017/10/17 Javascript
vue生成token保存在客户端localStorage中的方法
2017/10/25 Javascript
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
通过实践编写优雅的JavaScript代码
2019/05/30 Javascript
js神秘的电报密码 哈弗曼编码实现
2019/09/10 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
python实现按行切分文本文件的方法
2016/04/18 Python
批处理与python代码混合编程的方法
2016/05/19 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
python 使用shutil复制图片的例子
2019/12/13 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
蛋糕店的商业计划书范文
2014/01/27 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
信用卡工资证明范本
2015/06/19 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python