使用 C# 与 Tesseract OCR 实现验证码识别工具
一、项目简介
我们将使用 Tesseract 的 C# 封装库 Tesseract(通过 NuGet 安装),创建一个控制台程序,实现验证码图片识别。支持识别由数字与大写字母组成的 4 位图像验证码。
二、环境准备
- 安装 Visual Studio
建议使用 Visual Studio 2019 或更新版本,选择“.NET 桌面开发”工作负载。
更多内容访问ttocr.com或联系1436423940 - 创建控制台项目
打开 Visual Studio:
新建项目 → 控制台应用 (.NET Core 或 .NET 6+)
项目名称如 CaptchaRecognizer
- 安装 NuGet 包
打开 NuGet 包管理器控制台,执行:
Install-Package Tesseract
三、项目目录准备
下载 Tesseract OCR 的语言数据 eng.traineddata
将该文件放入项目根目录下的 tessdata 文件夹中
最终目录结构示例:
CaptchaRecognizer/
├── tessdata/
│ └── eng.traineddata
├── Program.cs
四、C# 识别验证码核心代码
using System;
using Tesseract;
namespace CaptchaRecognizer
{
class Program
{
static void Main(string[] args)
{
string imagePath = args.Length > 0 ? args[0] : "captcha1.png";
string tessDataPath = "./tessdata";
try
{
using var engine = new TesseractEngine(tessDataPath, "eng", EngineMode.Default);
engine.SetVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
using var img = Pix.LoadFromFile(imagePath);
using var page = engine.Process(img);
string text = page.GetText();
Console.WriteLine($"识别结果: {text.Trim().Replace(" ", "").Replace("\n", "")}");
}
catch (Exception ex)
{
Console.WriteLine($"识别失败: {ex.Message}");
}
}
}
}
五、运行程序
假设图像为 captcha1.png,放在程序运行目录下:
dotnet run -- captcha1.png
输出示例:
识别结果: 7K3D
浙公网安备 33010602011771号