首页
/ 【亲测免费】 带带弟弟OCR通用验证码识别库使用教程

【亲测免费】 带带弟弟OCR通用验证码识别库使用教程

2026-01-30 04:09:11作者:董宙帆

1. 项目介绍

带带弟弟OCR是一个基于深度学习的通用验证码识别库,由作者sml2h3与kerlomz共同合作完成。该项目通过大量随机数据生成后进行深度网络训练,能够识别包括中文、英文(大小写)、数字以及部分特殊字符在内的多种验证码。带带弟弟OCR旨在提供简单易用的接口,减少用户配置和使用成本,给测试者带来舒适的体验。

2. 项目快速启动

环境支持

  • 系统:Windows 64位/32位,Linux 64位/ARM64,MacOS X64
  • CPU/GPU:支持
  • 最大支持Python版本:3.12

安装步骤

从pypi安装

pip install ddddocr

从源码安装

git clone https://github.com/sml2h3/ddddocr.git
cd ddddocr
python setup.py

注意:请勿直接在ddddocr项目的根目录内直接导入ddddocr,请确保你的开发项目目录名称不为ddddocr。

使用示例

import ddddocr

# 初始化OCR
ocr = ddddocr.DdddOcr()

# 读取图片
with open('example.jpg', 'rb') as f:
    image = f.read()

# 进行OCR识别
result = ocr.classification(image)

# 打印结果
print(result)

3. 应用案例和最佳实践

基础OCR识别

基础OCR识别主要用于识别单行文字,例如常见的英数验证码等。

import ddddocr

ocr = ddddocr.DdddOcr()
with open('example.jpg', 'rb') as f:
    image = f.read()
result = ocr.classification(image)
print(result)

目标检测

目标检测功能可以快速检测出图像中可能的目标主体位置。

import ddddocr
import cv2

det = ddddocr.DdddOcr(det=True)
with open('test.jpg', 'rb') as f:
    image = f.read()
bboxes = det.detection(image)

im = cv2.imread('test.jpg')
for bbox in bboxes:
    x1, y1, x2, y2 = bbox
    im = cv2.rectangle(im, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=2)
cv2.imwrite('result.jpg', im)

滑块检测

滑块检测功能通过opencv内置算法实现,适用于不同情况的滑块验证码。

import ddddocr

# 算法1
det = ddddocr.DdddOcr(det=False, ocr=False)
with open('target.png', 'rb') as f:
    target_bytes = f.read()
with open('background.png', 'rb') as f:
    background_bytes = f.read()
res = det.slide_match(target_bytes, background_bytes)
print(res)

# 算法2
slide = ddddocr.DdddOcr(det=False, ocr=False)
with open('bg.jpg', 'rb') as f:
    target_bytes = f.read()
with open('fullpage.jpg', 'rb') as f:
    background_bytes = f.read()
res = slide.slide_comparison(target_bytes, background_bytes)
print(res)

OCR概率输出

通过OCR概率输出,可以提供更灵活的OCR结果控制与范围限定。

import ddddocr

ocr = ddddocr.DdddOcr()
with open('test.jpg', 'rb') as f:
    image = f.read()
ocr.set_ranges("0123456789+-x/=")
result = ocr.classification(image, probability=True)

s = ""
for i in result['probability']:
    s += result['charsets'][i.index(max(i))]
print(s)

4. 典型生态项目

  • 带带弟弟OCR Node.js版本
  • 带带弟弟OCR Rust版本
  • captcha-killer的修改版
  • 通过ddddocr训练字母数字验证码模型并识别部署调用

以上是带带弟弟OCR通用验证码识别库的基本使用教程。希望对您有所帮助。

登录后查看全文
热门项目推荐
相关项目推荐