使用 Ruby 和 RTesseract 实现验证码识别工具

一、项目简介
本项目使用 Ruby 语言,通过 RTesseract 库调用系统 Tesseract OCR 引擎,对图像中的英文数字验证码进行识别。可用于网页自动化登录、命令行工具开发、简单表单识别等场景。

二、环境准备

  1. 安装 Ruby

sudo apt install ruby # Ubuntu
brew install ruby # macOS
验证:

ruby -v
2. 安装 Tesseract OCR

sudo apt install tesseract-ocr
brew install tesseract
3. 安装 Ruby 库

gem install rtesseract
gem install rmagick # 图像处理(基于 ImageMagick)
确保安装了 ImageMagick:

sudo apt install imagemagick
三、准备图像
将验证码图像命名为 captcha.png,图像应清晰、包含英文字母和数字,建议背景干净。

四、识别脚本代码
创建文件 ocr.rb:

require 'rmagick'
require 'rtesseract'

include Magick

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

original = Image.read('captcha.png').first
gray = original.quantize(256, GRAYColorspace)
bw = gray.threshold(0.5 * QuantumRange)

保存处理后的图像

bw.write('processed.png')

2. 使用 Tesseract 识别图像

image = RTesseract.new('processed.png', lang: 'eng', processor: :tesseract)
image.configs << 'tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'

result = image.to_s.strip
cleaned = result.gsub(/[^A-Za-z0-9]/, '')

puts "识别结果为:#{cleaned}"
五、运行程序

ruby ocr.rb
输出示例:
更多内容访问ttocr.com或联系1436423940
识别结果为:X7ZB9

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