使用 Julia 与 Tesseract 实现图像验证码识别系统

一、环境准备

  1. 安装 Julia
    前往 https://julialang.org/downloads/ 下载并安装 Julia(推荐 1.6 及以上版本)。
    更多内容访问ttocr.com或联系1436423940
  2. 安装 Tesseract
    根据操作系统选择安装方式:

Ubuntu/Debian:

sudo apt install tesseract-ocr
macOS:

brew install tesseract
Windows:

https://github.com/tesseract-ocr/tesseract 下载并安装,并将其添加到环境变量中。

  1. 安装 Julia 包
    打开 Julia REPL,输入:

using Pkg
Pkg.add("Images")
Pkg.add("ImageMagick")
Pkg.add("FileIO")
Pkg.add("DelimitedFiles")
二、编写识别代码
创建文件 captcha_ocr.jl,内容如下:

using FileIO
using Images
using ImageMagick

"""
识别验证码图像中的文本
"""
function recognize_captcha(image_path::String)
# 指定中间输出文件名
output_base = "ocr_output_" * string(time())

# 可选:设置字符白名单,仅识别数字和大写字母
whitelist = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

# 构造命令
cmd = `tesseract $(image_path) $(output_base) -l eng --psm 8 -c tessedit_char_whitelist=$whitelist`

run(cmd)

# 读取识别结果
txt_file = output_base * ".txt"
text = strip(read(txt_file, String))

# 清理结果:只保留有效字符
filtered = replace(uppercase(text), r"[^A-Z0-9]" => "")
return filtered

end

示例调用

img_path = "captcha_sample.png"
result = recognize_captcha(img_path)
println("识别结果:$result")
三、运行示例
确保当前目录下有一张图片名为 captcha_sample.png,然后在终端运行:

julia captcha_ocr.jl
输出示例:

识别结果:K9Y7
四、说明与技巧
--psm 8 表示使用单个字符识别模式,适合简单的验证码。

可通过 ImageMagick 对图像进行预处理(如二值化、缩放)以提升识别率。

可扩展支持批量识别、保存结果为 CSV 文件等功能。

五、扩展功能建议
如需对多个验证码图像进行识别,可将上述 recognize_captcha 函数包装成批处理版本:

function batch_recognize(dir_path::String)
for file in readdir(dir_path)
if endswith(file, ".png")
full_path = joinpath(dir_path, file)
result = recognize_captcha(full_path)
println("$file => $result")
end
end
end
调用示例:

batch_recognize("captchas")

posted @ 2025-07-20 16:32  ttocr、com  阅读(3)  评论(0)    收藏  举报