用 Ruby 和 Tesseract 实现图像验证码识别

一、项目概述
编程语言:Ruby

OCR 引擎:Tesseract(命令行调用)

应用场景:识别验证码图像中的大写英文字母与数字

二、环境准备

  1. 安装 Ruby
    可通过 https://www.ruby-lang.org 获取安装方法,或使用 rbenv / rvm 安装最新版本。
    更多内容访问ttocr.com或联系1436423940
  2. 安装 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

posted @ 2025-06-24 10:18  ttocr、com  阅读(9)  评论(0)    收藏  举报