Python验证码处理:利用PIL进行图片二值化预处理

叶初
叶初
发布时间:2026-10-13| 6人浏览过
原创

本文介绍在使用Selenium获取模糊验证码后,如何利用Python的PIL库进行预处理以提高Tesseract识别率。核心步骤包括将图片转换为灰度图,并通过设定阈值进行二值化处理,将低于阈值的像素置为白色(0),高于阈值的置为黑色(1),从而简化图像结构。

验证码图片预处理概述

写在最前面:

本文将分系列撰写。由于通过Selenium抓取到的验证码图片往往较为模糊,直接进行识别效果不佳,因此在调用Tesseract等OCR工具前,必须对图片进行必要的预处理。

预处理的第一步是执行二值化操作。具体方法是设定一个阈值,将图像像素值低于该阈值的区域全部置为白色(数值0),其余部分则置为黑色(数值1)。

二值化代码实现


import pytesseract
from PIL import Image,ImageEnhance
 
def binaryzation(threshold=145):      #降噪,图片二值化
  table = []
  for i in range(256):
    if i < threshold:
      table.append(0)
    else:
      table.append(1)
 
  return table
 
image = Image.open('newcode.jpg')     #打开图片
image = image.convert('L')         #转化为灰度图
image.show()
image = image.point(binaryzation(), '1')  #二值化
image.show()

这是原始图片:

首先将图片转换为灰度图:

接着进行二值化处理:

本期内容暂且至此,后续将继续深入研究。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。