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

京东旋转验证码识别代码

时间:2024-08-13 14:59:29浏览次数:16  
标签:img format base64 验证码 str img2 京东 识别 img1

京东旋转验证码样例如下:

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

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

 
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/2201_75821470/article/details/141129800

相关文章

  • Halcon颜色识别
     本文接扫halcon识别排序颜色,复杂点在于无法使用单一图像区域识别出5中颜色。这里用到了ImageR和ImageS*颜色识别*定义颜色类型FushColor:=['black','brown','red','pink','yellow']*颜色对应灰度值HueRange:=[10,51,68,100,145,191,\0,10,30,50]......
  • 关于小程序使用OCR进行身份证识别
    1.第三方插件安装 2.搜索并安装 3.购买免费次数1天100次  https://fuwu.weixin.qq.com/service/detail/000ce4cec24ca026d37900ed551415 4.选中使用的账号 5.支付完成愉快使用 6.正式使用  文档位置:https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wx44......
  • [图文直播]使用EasyOCR识别图片上的文字
    安装EasyOCRC:\Users\Administrator>pipinstalleasyocrCollectingeasyocrDownloadingeasyocr-1.7.1-py3-none-any.whl.metadata(11kB)Collectingtorch(fromeasyocr)Downloadingtorch-2.4.0-cp312-cp312-win_amd64.whl.metadata(27kB)Collectingtor......
  • springboot 整合微信公众号--验证码推送(spring boot+测试号)
    一、公众号开发初探这里会使用到自己的域名进行交互,没有域名的小伙伴可以使用  内网穿透(NATAPP), 如果没有使用过的的同学请移步 20秒轻松上手NATAAPP(内网穿透)公众号整体流程:用户扫公众号二维码。然后发一条消息:验证码。我们通过api回复一个随机的验证码,并且存入re......
  • 【嵌入式linux开发】旭日x3派部署自己训练的yolov5模型(安全帽识别、视频流推理、yolov
    旭日x3派部署自己训练的模型(安全帽识别、视频流推理、yolov5-6.2)windows,框架pytorch,python3.7效果模型训练模型转换1、pt模型文件转onnx2、检查onnx模型3、准备校准数据4、onnx转bin上板视频流推理1、图片推理2、视频流推理效果模型训练进官网可克隆yolov5......
  • 【验证码逆向专栏】某东 M 端登录滑块逆向分析
    声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作......
  • Python deepface:让你的代码轻松地实现人脸识别功能
    楔子在GitHub上面发现了一个非常有趣的库,叫deepface,简直是人间宝藏。这个库主要是做人脸识别和面部属性分析的,它集合了目前全球最顶尖的开源人脸识别算法,使用卷积神经网络(CNN)对图像进行特征提取,以实现高精度的人脸识别。实验表明,人类在面部识别任务上的准确率为97.53%,而这些......
  • 翔云PHP身份证识别接口集成示例-护照识别-港澳台通行证识别
    证件识别接口简介:证件识别接口一般是指针对各类证件进行识别,其中包含但不限于身份证识别、护照识别、港澳台通行证识别、户口页识别、驾驶证识别、行驶证识别、台湾健保卡等,其​多应用于需要进行实名认证与证件信息登记的场景。证件身份证识别接口返回结果示例如下:证件识别接......
  • Windows Defender SmartScreen 已阻止启动一个未识别的应用?
    您开发软件(.exe,.cab,.dll,.ocx,.msi,.xpi,.xap等),用户在下载的时候提醒,“WindowsDefenderSmartScreen已阻止启动一个未识别的应用启动,行此应用可能会导致您的电脑存在风险”该怎么解决?一 如何消除提示如果需要消除这一提示,这使用EV代码签名证书对这个软件进行数字签名!其......
  • 【全网独家】OpenCV 面部识别系统
    OpenCV面部识别系统面部识别是计算机视觉中的一项重要应用,广泛用于安防监控、身份验证等领域。本文将详细介绍OpenCV中的面部识别系统,包括其应用场景、原理解释、算法流程、代码示例实现及部署测试场景。目录介绍应用使用场景原理解释算法原理流程图及解释应用场景代码......