使用 Bash 与 Tesseract 实现验证码识别

一、环境准备

  1. 安装 Tesseract OCR

Ubuntu / Debian

sudo apt install tesseract-ocr
更多内容访问ttocr.com或联系1436423940

macOS (使用 Homebrew)

brew install tesseract
二、编写脚本 captcha_ocr.sh

!/bin/bash

检查参数

if [ $# -ne 1 ]; then
echo "用法: ./captcha_ocr.sh <验证码图像路径>"
exit 1
fi

IMAGE_PATH="$1"

if [ ! -f "$IMAGE_PATH" ]; then
echo "文件不存在: $IMAGE_PATH"
exit 1
fi

OUTPUT_BASE="output_temp"
WHITELIST="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

调用 tesseract 识别

tesseract "$IMAGE_PATH" "$OUTPUT_BASE" -l eng -c tessedit_char_whitelist=$WHITELIST >/dev/null 2>&1

提取并清洗识别结果

if [ -f "$OUTPUT_BASE.txt" ]; then
RAW=$(cat "$OUTPUT_BASE.txt")
RESULT=$(echo "$RAW" | tr -cd 'A-Z0-9')
echo "识别结果: $RESULT"
rm "$OUTPUT_BASE.txt"
else
echo "识别失败,未生成结果文件"
fi
三、赋予执行权限

chmod +x captcha_ocr.sh
四、运行示例

./captcha_ocr.sh ./captcha1.png
输出:

识别结果: 9D2K
五、批量识别示例
你可以配合 for 循环处理整个目录下的图像:

for img in captchas/*.png; do
echo -n "$img: "
./captcha_ocr.sh "$img"
done

posted @ 2025-06-27 13:20  ttocr、com  阅读(8)  评论(0)    收藏  举报