使用 Golang + gosseract 实现英文数字验证码识别
一、简介
gosseract 是对 Tesseract OCR 引擎的 Go 语言封装,让你能在 Go 项目中轻松集成 OCR 能力。适合需要快速部署、高并发调用、轻量依赖的验证码识别场景。
二、安装环境
- 安装 Tesseract OCR
macOS:
brew install tesseract
Ubuntu / Debian:
sudo apt install tesseract-ocr
2. 安装 Go 依赖
go install github.com/otiai10/gosseract/v2@latest
三、项目结构
captcha-ocr-go/
├── main.go
└── captcha.png # 你的验证码图片
四、代码实现
main.go 内容如下:
package main
import (
"fmt"
"log"
"github.com/otiai10/gosseract/v2"
)
func main() {
client := gosseract.NewClient()
defer client.Close()
// 设置图片路径
err := client.SetImage("captcha.png")
if err != nil {
log.Fatalf("加载图像失败: %v", err)
}
// 设置识别语言
client.Languages = []string{"eng"}
// 可选:只识别数字和大写字母,排除干扰
client.SetWhitelist("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
text, err := client.Text()
if err != nil {
log.Fatalf("识别失败: %v", err)
}
fmt.Printf("识别出的验证码为: %s\n", text)
}
五、运行程序
将验证码图片命名为 captcha.png 放在同目录,执行:
go run main.go
输出示例:
识别出的验证码为: X93KT
六、增强处理建议(可选)
图像处理建议结合 Python 或 ImageMagick 预处理后再识别
支持并发识别多个验证码(Go 协程并发调用)
可封装为 HTTP API,服务其他模块调用
支持识别图像 Base64 数据或网络图像链接
七、适用场景
✅ 快速高效的服务端验证码识别接口
✅ Golang 爬虫自动填写验证码
✅ 与 Web 后端系统无缝集成
✅ 本地 CLI 工具或微服务调用