AntiCAP 入门指南
AntiCAP 是一个强大的验证码识别解决方案,支持多种验证码类型的识别,旨在帮助开发者快速集成验证码识别功能。
🧑⚖️ 免责声明
AntiCAP 仅供学习和研究使用,请勿用于非法用途。使用本工具所产生的一切后果由使用者自行承担。
🚀 快速开始
安装
AntiCAP 支持通过 pip 直接安装:
bash
pip install anticap基础使用
所有功能均通过 AntiCAP.Handler 进行调用。
python
import AntiCAP
# 初始化 Handler (show_banner=True 会显示启动横幅)
Atc = AntiCAP.Handler(show_banner=True)📚 功能示例
1. 通用 OCR 识别
适用于识别数字、大小写字母、汉字等常规文本验证码。
参考例图
python
import base64
import AntiCAP
# 读取图片并转为 Base64
with open("captcha.jpg", "rb") as img_file:
img_base64 = base64.b64encode(img_file.read()).decode('utf-8')
Atc = AntiCAP.Handler(show_banner=True)
result = Atc.OCR(img_base64=img_base64) # 传入图片Base64编码字符串
print(result) # 返回识别字符串,例如: jepy2. 算术验证码识别
适用于加减乘除等算术题验证码,直接返回计算结果。
参考例图
python
import base64
import AntiCAP
with open("captcha.jpg", "rb") as img_file:
img_base64 = base64.b64encode(img_file.read()).decode('utf-8')
Atc = AntiCAP.Handler(show_banner=True)
result = Atc.Math(img_base64=img_base64)
print(result) # 返回计算结果,例如: 83. 图标侦测
检测图片中的图标位置,返回图标类别和坐标框。
参考例图
python
import base64
import AntiCAP
with open("captcha.jpg", "rb") as img_file:
img_base64 = base64.b64encode(img_file.read()).decode('utf-8')
Atc = AntiCAP.Handler(show_banner=True)
result = Atc.Detection_Icon(img_base64=img_base64)
print(result)
# 返回示例: [{'class': 'icon', 'box': [9.12, 105.4, 111.73, 223.02]}...]
# box 格式: [x1, y1, x2, y2] (左上角和右下角坐标)4. 文字侦测
检测图片中的文字位置,返回文字类别和坐标框。
参考例图
python
import base64
import AntiCAP
with open("captcha.jpg", "rb") as img_file:
img_base64 = base64.b64encode(img_file.read()).decode('utf-8')
Atc = AntiCAP.Handler(show_banner=True)
result = Atc.Detection_Text(img_base64=img_base64)
print(result)
# 返回示例: [{'class': 'Text', 'box': [145.71, 19.21, 223.99, 95.7]}...]5. 图标点选类
根据提示图(Order Image)在目标图(Target Image)中按顺序找出对应图标。
提示图
目标图片
python
import base64
import AntiCAP
with open("order_image.jpg", "rb") as f:
order_img_base64 = base64.b64encode(f.read()).decode('utf-8')
with open("target_image.jpg", "rb") as f:
target_img_base64 = base64.b64encode(f.read()).decode('utf-8')
Atc = AntiCAP.Handler(show_banner=True)
result = Atc.ClickIcon_Order(
order_img_base64=order_img_base64,
target_img_base64=target_img_base64
)
print(result)6. 文字点选类
根据提示图(Order Image)在目标图(Target Image)中按顺序找出对应文字。
提示图
目标图片
python
import base64
import AntiCAP
with open("order_image.jpg", "rb") as f:
order_img_base64 = base64.b64encode(f.read()).decode('utf-8')
with open("target_image.jpg", "rb") as f:
target_img_base64 = base64.b64encode(f.read()).decode('utf-8')
Atc = AntiCAP.Handler(show_banner=True)
result = Atc.ClickText_Order(
order_img_base64=order_img_base64,
target_img_base64=target_img_base64
)
print(result)7. 缺口滑块类
识别滑块缺口的位置。
缺口图
背景图
python
import base64
import AntiCAP
# 读取滑块图片(小块)
with open("slider.png", "rb") as f:
target_base64 = base64.b64encode(f.read()).decode('utf-8')
# 读取背景图片(带缺口的大图)
with open("background.jpg", "rb") as f:
background_base64 = base64.b64encode(f.read()).decode('utf-8')
Atc = AntiCAP.Handler(show_banner=True)
result = Atc.Slider_Match(
target_base64=target_base64,
background_base64=background_base64
)
print(result)8. 阴影滑块类
识别背景图中阴影滑块的位置。
目标图片 (滑块) 
背景图片
python
import base64
import AntiCAP
with open("target.jpg", "rb") as f:
target_base64 = base64.b64encode(f.read()).decode('utf-8')
with open("background.jpg", "rb") as f:
background_base64 = base64.b64encode(f.read()).decode('utf-8')
Atc = AntiCAP.Handler(show_banner=True)
result = Atc.Slider_Match(
target_base64=target_base64,
background_base64=background_base64
)
print(result)9. 相似度对比
比较两张图片的相似度。
图片1
图片2
python
import base64
import AntiCAP
with open("image1.jpg", "rb") as f:
image1_base64 = base64.b64encode(f.read()).decode('utf-8')
with open("image2.jpg", "rb") as f:
image2_base64 = base64.b64encode(f.read()).decode('utf-8')
Atc = AntiCAP.Handler(show_banner=True)
result = Atc.Compare_Image_Similarity(
image1_base64=image1_base64,
image2_base64=image2_base64
)
print("相似度结果:", result)10. 双图旋转类验证码
识别内圈和外圈的旋转角度,使它们拼合。
内圈
外圈
python
import base64
import AntiCAP
with open("inside.jpg", "rb") as f:
inside_base64 = base64.b64encode(f.read()).decode('utf-8')
with open("outside.jpg", "rb") as f:
outside_base64 = base64.b64encode(f.read()).decode('utf-8')
Atc = AntiCAP.Handler(show_banner=True)
result= Atc.Double_Rotate(
inside_base64=inside_base64,
outside_base64=outside_base64
)
print(result)
# 返回示例: {'similarity': 0.665, 'inner_angle': 75.5, 'raw_angle': 151}11. 单图旋转类验证码
识别单张图片需要旋转的角度以恢复正常显示。
图片
python
import base64
import AntiCAP
with open("rotate_image.jpg", "rb") as f:
rotate_base64 = base64.b64encode(f.read()).decode('utf-8')
Atc = AntiCAP.Handler(show_banner=True)
result= Atc.Single_Rotate(image_base64=rotate_base64)
print(result)
# 返回旋转角度,例如: 229🧬 自定义模型
AntiCAP 的核心函数均支持加载自定义模型(如 .pt 格式的 YOLO 模型或 .onnx 格式的模型)。
python
import AntiCAP
Atc = AntiCAP.Handler(show_banner=True)
# 1. 算术验证码自定义模型
result = Atc.Math(
img_base64="",
math_model_path=r"C:\AntiCAP\model\your_math_model.pt"
)
# 2. 图标侦测自定义模型
result = Atc.Detection_Icon(
img_base64="",
detectionIcon_model_path=r"C:\AntiCAP\model\your_detectionIcon_model.pt"
)
# 3. 文字侦测自定义模型
result = Atc.Detection_Text(
img_base64="",
detectionText_model_path=r"C:\AntiCAP\model\your_detectionText_model.pt"
)
# 4. 文字点选自定义模型
result = Atc.ClickText_Order(
order_img_base64="",
target_img_base64="",
detectionText_model_path=r"C:\AntiCAP\model\your_detectionText_model.pt",
sim_onnx_model_path=r"C:\AntiCAP\model\your_sim_onnx_model.onnx"
)
# 5. 图标点选自定义模型
result = Atc.ClickIcon_Order(
order_img_base64="",
target_img_base64="",
detectionIcon_model_path=r"C:\AntiCAP\model\your_detectionIcon_model.pt",
sim_onnx_model_path=r"C:\AntiCAP\model\your_sim_onnx_model.onnx"
)
# 6. 相似度对比自定义模型
result = Atc.Compare_Image_Similarity(
image1_base64="",
image2_base64="",
sim_onnx_model_path=r"C:\AntiCAP\model\your_sim_onnx_model.onnx"
)
# 7. 单图旋转自定义模型
result = Atc.Single_Rotate(
image_base64="",
rotate_onnx_modex_path=r"C:\AntiCAP\model\your_rotate_onnx_model.onnx"
)