Skip to content

About

滑块验证码匹配

Resources

Stars

8 stars

Watchers

1 watching

Forks

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Slider Captcha Match

项目简介

Slider Captcha Match 是一个基于 Python 和 OpenCV 的滑块验证码匹配工具,旨在通过对比滑块和背景图像来计算滑块的正确偏移量。该项目主要用于验证图像处理和匹配算法。

目录结构

.
├── README.md
├── data
│   ├── bg3.jpeg
│   ├── output
│   └── slider3.png
├── pyproject.toml
├── requirements.txt
├── src
│   ├── __init__.py
│   └── slider_captcha_match.py
└── tests
    ├── __pycache__
    └── test_slider_match.py

安装

  1. 克隆仓库到本地:
git clone https://github.com/ityangs/slider-captcha-match.git
cd slider-captcha-match
  1. 创建虚拟环境并安装依赖:
python -m venv venv
source venv/bin/activate  # 在 Windows 上使用 `venv\Scripts\activate`
pip install -r requirements.txt
  1. 使用 Anaconda 或 Mamba 安装依赖:
or
mamba create -n slider-captcha-match python=3.10
mamva activate slider-captcha-match
pip install -r requirements.txt

使用说明

核心类 SlideCaptchaMatch

方法1:SlideCaptchaMatch 类包含了进行滑块匹配的核心方法。

from src.slider_captcha_match import SliderCaptchaMatch

processor = SliderCaptchaMatch(save_images=True, output_path="output")

# 通过图像路径获取滑块偏移量
offset = processor.get_slider_offset("data/bg3.jpeg", "data/slider3.png")
print(f"Offset (paths): {offset}")

# 通过 base64 编码获取滑块偏移量
background_base64 = "..."  # base64 编码的背景图像
slider_base64 = "..."  # base64 编码的滑块图像
offset = processor.get_slider_offset(background_base64, slider_base64)
print(f"Offset (base64): {offset}")

方法2:

  1. 安装依赖:要运行上述代码,需要安装以下 Python 库:
pip install numpy opencv-python slider_captcha_match
  1. 在安装完所需库后,您可以按照以下步骤使用滑块验证码匹配功能:
  • 初始化SliderCaptchaMatch类:配置高斯模糊、Canny边缘检测等参数。
  • 读取背景图像和滑块图像:可以是文件路径或base64编码。
  • 获取滑块偏移量:调用get_slider_offset函数,返回滑块的准确偏移量。
from slider_captcha_match import SliderCaptchaMatch
from datetime import datetime
import cv2

# 初始化 SliderCaptchaMatch 类
slider_captcha_match = SliderCaptchaMatch(save_images=True, output_path="output")

# 读取背景图像和滑块图像
background_source = "path_to_background_image.jpg"
slider_source = "path_to_slider_image.png"

# 获取滑块偏移量
offset = slider_captcha_match.get_slider_offset(background_source, slider_source)
print(f"滑块偏移量: {offset}")

# 输出结果保存路径
out_file_name = datetime.now().strftime('%Y%m%d%H%M%S.%f')[:-3]
print(f"结果图像保存路径: output/{out_file_name}_image_label.png")

测试

项目包含基本的测试代码,测试代码位于 tests/test_slide_match.py 中,包含了两种测试方法: 通过路径获取滑块偏移量。 通过 base64 编码获取滑块偏移量。 可以直接运行测试文件来查看效果:

python tests/test_slider_match.py

贡献

如果你有兴趣为本项目做贡献,请遵循以下步骤:

1. Fork 本仓库
2. 创建你的 feature 分支 (`git checkout -b feature/fooBar`)
3. 提交你的修改 (`git commit -am 'Add some fooBar'`)
4. 推送到分支 (`git push origin feature/fooBar`)
5. 创建一个新的 Pull Request

许可证

此项目基于 MIT 许可证,详情请参阅 LICENSE 文件。

联系

如果你有任何问题或建议,请通过电子邮件联系我们:ityangs@163.com

About

滑块验证码匹配

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages