本文实例为大家分享了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实现验证码识别功能相关推荐

  1. 自动识别阿里云的滚动验证码

    有些人需要在企业查等网站自动识别验证码.这个验证码称为阿里云的滚动验证码.虽然这看起来是很简单, 但是自动识别也不那么简单. 网上有几个文章,都是用puppet的.不过因为有个网站就阻止puppet上 ...

  2. 图片验证码、阿里云短信发送和验证的逻辑

    图片验证码的生成 1.django 缓存设置 1.1 安装Django缓存模块 pip install django-redis==4.12.1 1.2 syl/settings.py中配置缓存 # ...

  3. nodejs实现阿里云短信验证码

    nodejs实现阿里云短信验证码 事先准备 1.开通阿里云短信服务 2.获取 AccessKey 代码编写 事先准备 1.开通阿里云短信服务 1⃣️登陆阿里云,然后进入到 https://dysms. ...

  4. 使用阿里云短信验证码API发送短信验证码(配置,获取短信验证码,注册,登录,密码重置)

    获取阿里云短信验证码需要的配置信息. 如果是新用户,可以免费领取3个月,老用户的话就只能购买了,但是也不贵. 申请短信签名 申请短信模板 编写发送短信验证码的工具类 代码中我已经进行了详细的注释,也写 ...

  5. 阿里云短信验证码实战

    一.创建阿里云短信权限用户 1.登陆阿里云之后我们点击头像,接着点击AccessKey: 2.选择开始使用子用户 : 3.我们先要创建一个用户组: 4.依次点击新建的用户组--授权管理,给用户组授权, ...

  6. 阿里云短信验证码服务

    1.开通服务 ​​​​​​短信服务_企业短信营销推广_验证码通知-阿里云 2.申请签名管理和模板管理 3.添加依赖 <dependencies><dependency>< ...

  7. 【阿里云短信验证码】麻瓜教程~~~从注册---申请---代码---执行

    阿里云短信验证码 当然啦,学习任何东西第一步就是去注册当前网站的账号. 阿里云的官网:https://www.aliyun.com/?utm_content=se_1008364713 ◆[1.先注册 ...

  8. springboot 使用shiro集成阿里云短信验证码

    目录 1.阿里云短信验证码服务 2.发送短信验证码 3.shiro配置多个realm 4.验证短信验证码 5.一些修改思路 引言:短信验证码是通过发送验证码到手机的一种有效的验证码系统,主要用于验证用 ...

  9. C# ASP.NET MVC 阿里云短信验证码Demo

    相信大家在开发过程中又很多使用到验证码验证的功能,今天将验证码的验证整理一下写了一个Demo 通过本篇后你能学习到: 阿里云短信服务 Drapper连接SQL Server进行增改操作 JS前端倒计时 ...

最新文章

  1. 线程安全与可重入函数的区别及联系
  2. pip is configured with locations that require TLS/SSL 解决
  3. iOS开发中视图相关的小笔记:push、modal、popover、replace、custom
  4. UPS不间断电源培训资料
  5. opencv imwrite()函数中 ImwriteFlags 的 cv.IMWRITE_JPEG_RST_INTERVAL(JPEG restart interval 重启间隔)是什么?
  6. 如何一键部署项目、代码自动更新
  7. 【Golang 接口自动化05】使用yml管理自动化用例
  8. 解决mysql无法启动,错误1067
  9. jquery1.8.3和1.11.3的用法区别
  10. 【Stimulsoft Reports Silverlight教程】使用报表组件
  11. python迭代遍历目录下所以文件(Iterating through directories with Python)
  12. 【UE】UE4下载安装及测试demo
  13. 【C语言视频教程完整版】从入门到进阶,适合C语言初学者计算机考研党考计算机二级大一大二学生学习观看~~~
  14. 如何将两段音乐合并成一段?
  15. SSH使用教程( Bitvise Tunnelier+Chrome+Proxy Switchy)
  16. ftp服务器显示密码,Ftp服务器怎么查看密码
  17. 计算机网络与应用技术清华答案第二版,计算机网络-原理、技术与应用(第2版)部分习题答案(不外传!).pdf...
  18. bzoj 4238: 电压 dfs树
  19. 手机屏幕投屏到电脑上是通过什么技术实现的?
  20. python3计算列表长度

热门文章

  1. springboot整合vosk实现简单的语音识别功能
  2. 罗马仕充电宝php30pro爆炸,罗马仕:为什么总是出现充电宝自燃爆炸的事件?
  3. 我校第一届“达内杯”程序设计大赛决赛成功举办
  4. Qt-OpenCV学习笔记--计算周长--arcLength()
  5. NSX-T NAPP -02 部署K8S
  6. JavaSE基础笔记——不可变集合简介、Stream流体系、异常处理
  7. Apollo星火计划学习笔记——Apollo路径规划算法原理与实践
  8. C语言整型常量的表示方法(转自百度整理)
  9. 我的世界(Java版)原版服开服教程
  10. 集成开发环境IDE及 VC++6.0实操