首页 > 其他分享 >京东最新旋转验证码识别代码

京东最新旋转验证码识别代码

时间:2024-10-25 16:18:31浏览次数:3  
标签:img format base64 验证码 str img2 京东 识别 img1

今天京东旋转验证又又又更新了,样例如下:

更新了很多新图片,我们再次进行了大量数据标记,完成了这款验证码的更新。现在正确率可以达到99%左右。

下边是这款验证码的识别代码:

 
import base64
import requests
import datetime
import numpy as np
from io import BytesIO
from PIL import Image
 
t1 = datetime.datetime.now()
 
#PIL图片保存为base64编码
def PIL_base64(img, coding='utf-8'):
    img_format = img.format
    if img_format == None:
        img_format = 'JPEG'
 
    format_str = 'JPEG'
    if 'png' == img_format.lower():
        format_str = 'PNG'
    if 'gif' == img_format.lower():
        format_str = 'gif'
 
    if img.mode == "P":
        img = img.convert('RGB')
    if img.mode == "RGBA":
        format_str = 'PNG'
        img_format = 'PNG'
 
    output_buffer = BytesIO()
    # img.save(output_buffer, format=format_str)
    img.save(output_buffer, quality=100, format=format_str)
    byte_data = output_buffer.getvalue()
    base64_str = 'data:image/' + img_format.lower() + ';base64,' + base64.b64encode(byte_data).decode(coding)
 
    return base64_str
 
# 旋转图片
def mark(img, angle):
    # 转换为有alpha层
    temp_img2 = img.convert('RGBA')
    # 旋转
    rot = temp_img2.rotate(-angle)
    # 创建一个与旋转图像大小相同的白色图像
    fff = Image.new('RGBA', rot.size, (255,) * 4)
    # 使用alpha层的rot作为掩码创建一个复合图像
    out = Image.composite(rot, fff, rot)
    # 将临时图片转换为元素图片颜色模式
    temp_img2 = out.convert(img.mode)
 
    return temp_img2
 
# 加载外圈大图
img1 = Image.open(r'E:\Python\lixin_project\OpenAPI接口测试\test_img\41号模型测试图片_1.png')
# 图片转base64
img1_base64 = PIL_base64(img1)
# 加载内圈小图
img2 = Image.open(r'E:\Python\lixin_project\OpenAPI接口测试\test_img\41号模型测试图片_2.png')
# 图片转base64
img2_base64 = PIL_base64(img2)
 
# 验证码识别接口
url = "http://www.detayun.cn/openapi/verify_code_identify/"
data = {
    # 用户的key
    "key":"EhH7MC2kAYeyZTPYeqWw",
    # 验证码类型
    "verify_idf_id":"41",
    # 外圈大图
    "img1":img1_base64,
    # 内圈小图
    "img2":img2_base64,
}
header = {"Content-Type": "application/json"}
 
# 发送请求调用接口
response = requests.post(url=url, json=data, headers=header)
 
# 获取响应数据,识别结果
print(response.text)
print("耗时:", datetime.datetime.now() - t1)
angle = response.json()['data']['angle']
 
# 旋转图片查看效果
# 旋转图像
img2 = mark(img2, angle)
# 获取大图和小图的尺寸
large_width, large_height = img1.size
small_width, small_height = img2.size
 
# 计算小图在大图中的位置(中心)
position = ((large_width - small_width) // 2, (large_height - small_height) // 2)
 
# 将小图粘贴到大图的中心
img1.paste(img2, position)
img1.show()

这里有详细的说明文档:得塔云

想了解更多验证码识别请访问:得塔云

标签:img,format,base64,验证码,str,img2,京东,识别,img1
From: https://blog.csdn.net/Dxy1239310216/article/details/143212432

相关文章

  • SVM识别手写数字
    """https://mp.weixin.qq.com/s/SL57KglCbNDoONSKFmXRtA支持向量机(SVM)支持向量机用于分类和回归问题。比如,识别手写数字。"""fromsklearn.svmimportSVCfromsklearn.model_selectionimporttrain_test_splitfromsklearn.metricsimportaccuracy_scorefromsklearn.d......
  • 越界检测视频分析网关区域入侵识别人员入侵算法的技术原理和视频监控应用
    在传统的监控模式下,依赖人工持续监视视频画面存在明显的局限性,包括疲劳、注意力分散以及无法覆盖所有区域等问题,这使得实现24小时、全方位监控变得困难。而人工智能技术的应用,通过在关键位置部署摄像头,能够捕获连续的视频流。结合深度学习模型,这些视频流可以被实时分析,从而提高了......
  • 护照如何查验真伪?C++护照查验接口示例、护照文字识别、身份验证
    在当下全球化加速、出入境需求激增的背景下,护照查验接口作为提升边检效率和保障国民安全的重要技术,正逐渐受到广泛关注。随着全球旅游业的复苏和国际商务交流的频繁,如何更高效、智能地完成护照查验成为了政府和企业的关键任务。数字化政务正在全球范围内成为趋势,护照查验......
  • 身份核验“新引擎“-视频活体检测API、活体检测、人脸识别认证
    近年来,随着线上支付、远程办公、在线教育等场景的普及,人们对于线上服务的需求激增。然而,这也给不法分子带来了可乘之机。通过伪造证件照片或使用高质量的人脸面具来欺骗人脸识别系统,这类事件时有发生。因此,如何确保线上交互过程中用户的真实性和安全性成为了一个亟待解决的问......
  • 【shiro】13.验证码过滤器
    通过之前的学习,我们知道如果自定义过滤器的使用。接下来,查看ruoyi源码,我们需要在过滤器中实现验证码。前提已新建SpringBoot项目项目以成功集成shiro,并完成简单配置已完成路由配置,包含登录页面/login和首页index已经知道如何使用和自定义过滤器思路1.Shiro的配置页面,添......
  • 基于单片机的多功能指纹识别门禁系统设计与实现
    #1024程序员节|征文#作者主页:编程千纸鹤作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为......
  • 13.4K+ Star!DeepFace:一个轻量级人脸识别和面部属性分析库
    DeepFace简介DeepFace[1]是一个用于Python的轻量级人脸识别和面部属性分析(年龄、性别、情绪和种族)库。DeepFace利用深度学习进行人脸识别和分析,它通过封装多种先进的人脸识别模型,提供了一个简单易用的接口。用户无需深入了解背后的复杂过程,只需通过简单的函数调用来实现......
  • STM32配置HID设备时主机识别不到力反馈的解决办法
    这个问题困扰我快一个星期了,我仔仔细细阅读了DeviceClassDefinitionforPhysicalInterfaceDevices(PID)Version1.0和HIDUsageTablesFORUniversalSerialBus(USB)。都没有找到识别不到力反馈的原因,按理说配置完报告描述符就能显示力反馈了,但是我这边死活识别不到,于......
  • 条码检测系统——基于MATLAB的一维条码识别
    条码检测系统——基于MATLAB的一维条码识别摘 要:条码技术是如今应用最广泛的识别和输入技术之一,由于其包含的信息量大,识别错误率低而在各个方面得到很大的重视。它发展迅速并被广泛应用于于工业、商业、图书出版、医疗卫生等各行各业。由我国目前发展现状来看,条码的正常使......
  • 基于MATLAB的说话人语音识别
    基于MATLAB的说话人语音识别                     目录系统设计任务及要求………………………………………………3语音识别的简介……………………………………………………3三、语音识别原理………………………………………………………33.1语音识......