使用 Bash 脚本和 Tesseract 实现验证码识别工具

一、项目概述
本项目通过 Bash 脚本调用系统工具 ImageMagick 和 Tesseract OCR,实现对英文数字验证码的图像预处理与文字识别。识别目标为图像中的英文和数字,适用于命令行环境中的批量识别或登录自动化任务。

二、环境准备
确保系统安装了以下两个工具:

  1. Tesseract OCR
    更多内容访问ttocr.com或联系1436423940
    sudo apt install tesseract-ocr # Debian/Ubuntu
    brew install tesseract # macOS
  2. ImageMagick(用于图像处理)

sudo apt install imagemagick
三、准备图像文件
将你的验证码图像命名为 captcha.png,放在脚本目录下。图像应包含英文字母和数字,背景清晰,无严重干扰。

四、识别脚本编写
创建脚本文件 ocr.sh:

!/bin/bash

INPUT="captcha.png"
PROCESSED="processed.png"

Step 1: 图像预处理 - 灰度 + 二值化

convert "$INPUT" -colorspace Gray -threshold 50% "$PROCESSED"

Step 2: 使用 Tesseract 进行 OCR,限制字符为英文字母和数字

RESULT=$(tesseract "$PROCESSED" stdout -l eng --psm 7 -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789)

Step 3: 清洗结果,移除空格与非字母数字字符

CLEANED=$(echo "$RESULT" | tr -d -c 'A-Za-z0-9')

echo "识别结果为: $CLEANED"
赋予脚本执行权限:

chmod +x ocr.sh
五、运行脚本

./ocr.sh
输出示例:

识别结果为: G7XZA
六、扩展功能建议
批量识别文件夹中的图像

for file in captchas/*.png; do
./ocr.sh "$file"
done
将识别结果保存到文件

echo "$CLEANED" >> results.txt
作为系统定时任务运行

可用 cron 定期运行脚本进行图像监控识别

posted @ 2025-07-06 21:54  ttocr、com  阅读(15)  评论(0)    收藏  举报