【问题标题】:Tesseract can not recognize captcha textTesseract 无法识别验证码文本
【发布时间】:2019-04-17 00:32:15
【问题描述】:

我正在尝试识别验证码中的文本,但这对我来说是不可能的。我正在使用 python3、openCv 和 tesseract。

简化代码为:

import cv2                                                           
from pytesseract import *

img_path = "path"

img = cv2.imread(img_path)
img = cv2.resize(img, None, fx=2, fy=2, interpolation=cv2.INTER_LINEAR)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

pytesseract.image_to_string(img)

我想我应该先去掉颜色线,然后再不理会文字,也许可以改变亮度和对比度。可以应用什么过滤器?

这些是一些要识别的图像。

【问题讨论】:

  • 在我看来,CAPTCHA 工作正常。
  • 当然不能,你认为他们为什么发明 CAPTCHA?

标签: python python-3.x opencv tesseract python-tesseract


【解决方案1】:

要使用 pytesseract-ocr 识别验证码文本,您可以执行以下操作..

  • 准备自定义 train_set 以训练您的 tesseract 实例以识别特定字体[可选]

  • 验证码图像需要一些预处理(例如 * 应用黑白滤镜 > 缩放(放大)> 模糊 > 形态变换 + 自适应阈值*)以增强文本部分并减少噪音/线条。

  • 对于去除线条:在示例图像中,只能看到黑色文本并且没有黑色线条,因此您可以使用 PIL 或 OpenCV 将每个非黑色像素简单地转换为白色,您甚至可以利用一些特定的算法,如霍夫线变换来检测和去除线条。

您可以从 OpenCV 网站上的官方文档和教程中了解所有这些过滤器和算法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-05
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 2013-06-14
    • 2018-11-03
    相关资源
    最近更新 更多