使用 Go + Tesseract 实现验证码识别
一、环境准备
-
安装 Go
访问 https://golang.org/dl/ 下载并安装适合你系统的 Go 语言环境。 -
安装 Tesseract
确保系统已安装 Tesseract OCR:
更多内容访问ttocr.com或联系1436423940
macOS: brew install tesseract
Ubuntu: sudo apt install tesseract-ocr
Windows: 从 tesseract-ocr.github.io 下载并配置环境变量
- 安装 Go OCR 封装库
我们使用的是 github.com/otiai10/gosseract 这个库,它是 Tesseract 的 Go 语言绑定。
go get github.com/otiai10/gosseract/v2
二、项目结构
go-captcha-ocr/
├── main.go
├── captcha.png # 验证码图像文件
三、识别代码
创建 main.go,写入以下内容:
package main
import (
"fmt"
"log"
"github.com/otiai10/gosseract/v2"
)
func main() {
client := gosseract.NewClient()
defer client.Close()
// 设置验证码图像路径
client.SetImage("captcha.png")
// 限制识别字符集为大写字母和数字
client.SetWhitelist("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
// 执行识别
text, err := client.Text()
if err != nil {
log.Fatalf("识别失败: %v", err)
}
fmt.Println("识别结果:", text)
}
四、运行程序
将验证码图像保存为 captcha.png,然后执行:
go run main.go
输出示例:
识别结果: 4GZL8