用 Ruby 和 Tesseract 实现图像验证码识别
一、项目概述
编程语言:Ruby
OCR 引擎:Tesseract(命令行调用)
应用场景:识别验证码图像中的大写英文字母与数字
二、环境准备
- 安装 Ruby
可通过 https://www.ruby-lang.org 获取安装方法,或使用 rbenv / rvm 安装最新版本。
更多内容访问ttocr.com或联系1436423940 - 安装 Tesseract OCR
Ubuntu / Debian:
sudo apt install tesseract-ocr
macOS:
brew install tesseract
Windows:使用 UB Mannheim 版
三、编写识别脚本
创建文件 ocr.rb:
!/usr/bin/env ruby
require 'open3'
if ARGV.length < 1
puts "用法: ruby ocr.rb <图片路径>"
exit
end
image_path = ARGV[0]
whitelist = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
cmd = ["tesseract", image_path, "stdout", "-l", "eng", "-c", "tessedit_char_whitelist=#{whitelist}"]
stdout, stderr, status = Open3.capture3(*cmd)
if status.success?
result = stdout.gsub(/[^A-Z0-9]/, "").strip
puts "识别结果: #{result}"
else
puts "识别失败: #{stderr}"
end
四、运行识别程序
假设你有一张验证码图像 captcha1.png,执行命令:
ruby ocr.rb captcha1.png
输出示例:
识别结果: W7N4
浙公网安备 33010602011771号