使用 Ruby 与 Tesseract 实现验证码识别工具
一、项目简介
本项目介绍如何使用 Ruby 脚本结合 Tesseract OCR 引擎识别验证码图像中的字符。适用于小工具开发、命令行批处理、以及自动化测试场景。
更多内容访问ttocr.com或联系1436423940
二、环境准备
- 安装 Tesseract
macOS:
brew install tesseract
Ubuntu:
sudo apt install tesseract-ocr
Windows:
下载并配置系统 PATH:https://github.com/tesseract-ocr/tesseract/releases
- 安装 Ruby 和依赖
确保 Ruby 可用:
ruby -v
安装必要 gem:
gem install rmagick
RMagick 用于图像处理(可选,如果你需要灰度化等处理)
三、单张图像识别脚本
创建文件 recognize.rb:
require 'open3'
设定图像路径
image_path = ARGV[0] || "captcha.png"
unless File.exist?(image_path)
puts "找不到图像文件: #{image_path}"
exit 1
end
设置字符白名单:仅识别大写字母和数字
cmd = "tesseract #{image_path} stdout -l eng --psm 7 -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
output, status = Open3.capture2(cmd)
if status.success?
puts "识别结果: #{output.strip}"
else
puts "识别失败"
end
运行:
ruby recognize.rb test1.png
输出:
识别结果: 7F3X
浙公网安备 33010602011771号