当前位置: 首页 > news >正文

国家税务总局中文点选验证码识别

一、简介

2026年元旦节,国家税务总局中文点选验证码居然又更新了。这次更新对识别还是有很大的影响。

1、文字的位置变得随机

2、文字的旋转角度变得更乱

让识别变得更加困难。我们在元旦节期间快速反应,迅速的采集最新的图片,完成了数据标记与训练。最终正确率达到了99%。

二、识别说明

识别这个验证码需要两张原图

1、点击区大图

2、点击顺序的小图

三、识别代码

下面的代码是样例代码,需要制定两张图片的路径,img1是点击区大图,img2是点击顺序小图。图片顺序不能传错。

import base64 import requests import datetime from io import BytesIO from PIL import Image, ImageDraw, ImageFont 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) # base64_str = base64.b64encode(byte_data).decode(coding) return base64_str # 加载图片 img1 = Image.open(r'E:\Python\lixin_project\OpenAPI接口测试\test_img\85-1.jpg') # 图片转base64 img1_base64 = PIL_base64(img1) img2 = Image.open(r'E:\Python\lixin_project\OpenAPI接口测试\test_img\85-2.png') # 图片转base64 img2_base64 = PIL_base64(img2) 验证码识别接口 可以根据自己网络情况选择不同接口 http://bq1gpmr8.xiaomy.net(电信) http://220.167.181.200:9009(移动、电信、联通) # 验证码识别接口 url = "http://220.167.181.200:9009/openapi/verify_code_identify/" data = { # 用户的key "key": "qaXZNkpHniKPxw4ZYJj0", # 验证码类型 "verify_idf_id": "85", # 点击区大图 "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) # 标记识别结果 draw = ImageDraw.Draw(img1) # 字体设置 font_type = "./msyhl.ttc" font_size = 20 font = ImageFont.truetype(font_type, font_size) # 获取结果列表 y = response.json()['data']['res_str'] point_list = eval(y) # 标记点击序号 for i, point in enumerate(point_list): draw.ellipse((point[0] - 15, point[1] - 15,point[0] + 15, point[1] + 15), fill=(255, 0, 0)) draw.text((point[0] - 5, point[1] - 15), str(i + 1), fill=(255, 255, 255), font=font) img1.show()

运行上面的代码会看到下面的点击效果

想了解更多验证码识别,请访问:http://bq1gpmr8.xiaomy.net/tool/verifyCodeHomePage2/?_=1767453173457

http://www.jsqmd.com/news/190355/

相关文章:

  • ESP32音频采集时序控制:I2S外设深入解析
  • Mem Reduct内存清理终极指南:快速解决电脑卡顿问题
  • VideoDownloadHelper终极指南:浏览器视频下载神器完整教程
  • 网盘直链下载助手原理揭秘:如何绕过限速获取大模型
  • 终极Hyper-V设备直通指南:告别复杂命令的图形界面解决方案
  • 如何实现浏览器下载速度翻倍?智能下载加速方案揭秘
  • 树莓派4b安装系统实战:打造智能灯光控制中心
  • Ofd2Pdf终极指南:3步解决OFD文档处理难题
  • 从零实现树莓派4b引脚功能图中断输入检测功能
  • 桌面管理革命:WindowResizer让窗口调整变得如此智能
  • 图解说明Arduino UNO下载步骤:新手友好型操作指南
  • MyBatis-Plus代码生成器(数据库逆向工程)实战指南
  • 本地化部署更安全:企业级应用首选IndexTTS2私有化语音方案
  • 3D打印螺纹优化新方案:Fusion 360智能配置完全指南
  • 三极管驱动LED灯电路:从理论到实操入门
  • 基于树莓派的控制系统升级故障排查从零实现
  • TinyMCE富文本导出HTML后调用IndexTTS2生成讲解音频
  • 微信小程序接入IndexTTS2语音合成功能的技术路径探讨
  • C#串口通信设想:通过硬件设备触发IndexTTS2语音播报
  • 光伏发电系统中的滑膜控制结合扰动观察法和电导增量法实现快速最大功率跟踪
  • DEAP进化算法实战:3个工业级大数据优化案例与性能提升方案
  • 2026年上半年安徽淮北无人机表演服务商五强排行榜:权威推荐与深度分析 - 2025年品牌推荐榜
  • iperf3 Windows网络测试终极指南:轻松评估网络性能
  • Window Resizer:突破系统限制的窗口尺寸精准控制工具
  • 三步搞定macOS上的Xbox游戏手柄驱动配置
  • 大模型应用:大模型的本地 API 服务:FastAPI 封装与接口鉴权.44
  • 2026年上半年安徽淮北无人机表演服务商竞争格局深度分析报告 - 2025年品牌推荐榜
  • Foobar2000逐字歌词终极配置指南:3步实现完美歌词同步
  • 魔兽世界API开发与宏命令应用完全解析
  • SD-WebUI模型下载器终极指南:便捷高速获取Civitai模型