使用 Bash 与 Tesseract 实现验证码识别
一、环境准备
- 安装 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
浙公网安备 33010602011771号