python 验证码识别 阿里云_python实现验证码识别功能
本文实例为大家分享了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实现验证码识别功能相关推荐
- 自动识别阿里云的滚动验证码
有些人需要在企业查等网站自动识别验证码.这个验证码称为阿里云的滚动验证码.虽然这看起来是很简单, 但是自动识别也不那么简单. 网上有几个文章,都是用puppet的.不过因为有个网站就阻止puppet上 ...
- 图片验证码、阿里云短信发送和验证的逻辑
图片验证码的生成 1.django 缓存设置 1.1 安装Django缓存模块 pip install django-redis==4.12.1 1.2 syl/settings.py中配置缓存 # ...
- nodejs实现阿里云短信验证码
nodejs实现阿里云短信验证码 事先准备 1.开通阿里云短信服务 2.获取 AccessKey 代码编写 事先准备 1.开通阿里云短信服务 1⃣️登陆阿里云,然后进入到 https://dysms. ...
- 使用阿里云短信验证码API发送短信验证码(配置,获取短信验证码,注册,登录,密码重置)
获取阿里云短信验证码需要的配置信息. 如果是新用户,可以免费领取3个月,老用户的话就只能购买了,但是也不贵. 申请短信签名 申请短信模板 编写发送短信验证码的工具类 代码中我已经进行了详细的注释,也写 ...
- 阿里云短信验证码实战
一.创建阿里云短信权限用户 1.登陆阿里云之后我们点击头像,接着点击AccessKey: 2.选择开始使用子用户 : 3.我们先要创建一个用户组: 4.依次点击新建的用户组--授权管理,给用户组授权, ...
- 阿里云短信验证码服务
1.开通服务 短信服务_企业短信营销推广_验证码通知-阿里云 2.申请签名管理和模板管理 3.添加依赖 <dependencies><dependency>< ...
- 【阿里云短信验证码】麻瓜教程~~~从注册---申请---代码---执行
阿里云短信验证码 当然啦,学习任何东西第一步就是去注册当前网站的账号. 阿里云的官网:https://www.aliyun.com/?utm_content=se_1008364713 ◆[1.先注册 ...
- springboot 使用shiro集成阿里云短信验证码
目录 1.阿里云短信验证码服务 2.发送短信验证码 3.shiro配置多个realm 4.验证短信验证码 5.一些修改思路 引言:短信验证码是通过发送验证码到手机的一种有效的验证码系统,主要用于验证用 ...
- C# ASP.NET MVC 阿里云短信验证码Demo
相信大家在开发过程中又很多使用到验证码验证的功能,今天将验证码的验证整理一下写了一个Demo 通过本篇后你能学习到: 阿里云短信服务 Drapper连接SQL Server进行增改操作 JS前端倒计时 ...
最新文章
- 线程安全与可重入函数的区别及联系
- pip is configured with locations that require TLS/SSL 解决
- iOS开发中视图相关的小笔记:push、modal、popover、replace、custom
- UPS不间断电源培训资料
- opencv imwrite()函数中 ImwriteFlags 的 cv.IMWRITE_JPEG_RST_INTERVAL(JPEG restart interval 重启间隔)是什么?
- 如何一键部署项目、代码自动更新
- 【Golang 接口自动化05】使用yml管理自动化用例
- 解决mysql无法启动,错误1067
- jquery1.8.3和1.11.3的用法区别
- 【Stimulsoft Reports Silverlight教程】使用报表组件
- python迭代遍历目录下所以文件(Iterating through directories with Python)
- 【UE】UE4下载安装及测试demo
- 【C语言视频教程完整版】从入门到进阶,适合C语言初学者计算机考研党考计算机二级大一大二学生学习观看~~~
- 如何将两段音乐合并成一段?
- SSH使用教程( Bitvise Tunnelier+Chrome+Proxy Switchy)
- ftp服务器显示密码,Ftp服务器怎么查看密码
- 计算机网络与应用技术清华答案第二版,计算机网络-原理、技术与应用(第2版)部分习题答案(不外传!).pdf...
- bzoj 4238: 电压 dfs树
- 手机屏幕投屏到电脑上是通过什么技术实现的?
- python3计算列表长度
热门文章
- springboot整合vosk实现简单的语音识别功能
- 罗马仕充电宝php30pro爆炸,罗马仕:为什么总是出现充电宝自燃爆炸的事件?
- 我校第一届“达内杯”程序设计大赛决赛成功举办
- Qt-OpenCV学习笔记--计算周长--arcLength()
- NSX-T NAPP -02 部署K8S
- JavaSE基础笔记——不可变集合简介、Stream流体系、异常处理
- Apollo星火计划学习笔记——Apollo路径规划算法原理与实践
- C语言整型常量的表示方法(转自百度整理)
- 我的世界(Java版)原版服开服教程
- 集成开发环境IDE及 VC++6.0实操