用 Go 快速实现命令行验证码识别工具(基于 Tesseract)

本教程将介绍如何用 Go 编写一个 CLI 工具,用于识别本地图像验证码,依赖开源 OCR 引擎 Tesseract,适用于清晰、结构化字符验证码。

一、工具特性
使用简单:支持命令行调用

可识别本地图片中的验证码文本

依赖最小:仅需安装 Tesseract 和一个 Go 包

支持字符集限制,提升识别准确率

二、环境准备
安装 Tesseract OCR
Linux / Debian:
更多内容访问ttocr.com或联系1436423940
sudo apt update
sudo apt install tesseract-ocr
macOS:

brew install tesseract
验证安装:

tesseract --version
安装 gosseract Go 包

go get github.com/otiai10/gosseract/v2
三、识别代码实现
创建文件 main.go,如下所示:

package main

import (
"fmt"
"log"
"os"

"github.com/otiai10/gosseract/v2"

)

func main() {
if len(os.Args) < 2 {
fmt.Println("用法: go run main.go <图片路径>")
return
}
imagePath := os.Args[1]

client := gosseract.NewClient()
defer client.Close()

err := client.SetImage(imagePath)
if err != nil {
	log.Fatalf("设置图片失败: %v", err)
}

// 限定字符集(验证码常见字符)
client.SetWhitelist("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")

text, err := client.Text()
if err != nil {
	log.Fatalf("识别失败: %v", err)
}

fmt.Println("识别结果:", text)

}
四、测试运行
假设当前目录中有一张验证码图片 captcha1.png:

运行命令:

go run main.go captcha1.png
输出示例:

识别结果: 6KQ8

posted @ 2025-05-28 23:21  ttocr、com  阅读(24)  评论(0)    收藏  举报