DDDDOCR 是一个开源的通用验证码识别 OCR(光学字符识别)工具库,由 GitHub 用户 sml2h3 开发。它主要用于识别各种类型的验证码图片,包括数字、字母、中文等。DDDDOCR 采用深度学习技术,通过大量随机生成的数据进行训练,具有较高的识别准确率。

安装和使用

可以通过 pip 命令安装 DDDDOCR:
```bash
pip3 install ddddocr
```


使用示例:


python3

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


这段代码将读取一个图片文件并使用 DDDDOCR 进行验证码识别。

更多的基本用法

#### 初始化 OCR 对象

创建一个 `Ocr` 类的实例来准备进行 OCR 识别:

```python
from ddddocr import DdddOcr

ocr = DdddOcr()
```

#### 识别图片中的文本

将包含验证码的图片提供给 OCR 实例,以获取识别结果:

```python
with open('captcha_image.png', 'rb') as f:
    image_bytes = f.read()

result = ocr.classification(image_bytes)
print(f"Recognized text: {result}")
```

#### 处理滑块验证码

对于滑块验证码,`DDDDOCR` 提供了专门的方法来进行检测和计算滑块的位置:

```python
from ddddocr import DdddOcr

ocr = DdddOcr(show_ad=False)  # 禁用广告显示

with open('slider_captcha.png', 'rb') as f:
    image_bytes = f.read()

res = ocr.slide_match(target_image_bytes, background_image_bytes, simple_target=True)
print(f"Slider offset: {res['target'][0]}")
```

### 高级特性

- **自定义模型**:如果你有特定类型的验证码需要更高的识别准确率,可以训练自己的模型并使用 `DDDDOCR` 进行推理。
- **批量处理**:支持一次传入多个图片进行批量识别。
- **优化性能**:通过调整参数或使用 GPU 加速来提升识别速度。

### 示例:完整代码示例

以下是一个完整的例子,演示了如何使用 `DDDDOCR` 识别图片中的文本以及处理滑块验证码:

```python
from ddddocr import DdddOcr

def recognize_text_from_image(image_path):
    ocr = DdddOcr()
    
    with open(image_path, 'rb') as f:
        image_bytes = f.read()

    result = ocr.classification(image_bytes)
    print(f"Recognized text from {image_path}: {result}")

def handle_slider_captcha(target_image_path, background_image_path):
    ocr = DdddOcr(show_ad=False)

    with open(target_image_path, 'rb') as f:
        target_image_bytes = f.read()

    with open(background_image_path, 'rb') as f:
        background_image_bytes = f.read()

    res = ocr.slide_match(target_image_bytes, background_image_bytes, simple_target=True)
    print(f"Slider offset for {target_image_path}: {res['target'][0]}")

if __name__ == "__main__":
    # 识别普通验证码图片中的文本
    recognize_text_from_image('captcha_image.png')

    # 处理滑块验证码
    handle_slider_captcha('slider_target.png', 'slider_background.png')
```

总结

`DDDDOCR` 是一个强大且易于使用的 OCR 库,尤其擅长处理中文验证码识别任务。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐