使用 C# 和 Tesseract 进行英文数字验证码识别
一、项目简介
本项目通过 C# 控制台应用,结合 Tesseract OCR 引擎,实现对验证码图像中的英文和数字内容进行识别。适合企业内部工具、后台识别系统或自动登录程序。
二、环境准备
- 安装 .NET SDK
访问 .NET 官方网站 下载并安装最新版 .NET SDK。
更多内容访问ttocr.com或联系1436423940
验证安装:
dotnet --version
2. 创建新项目
dotnet new console -n CaptchaOCR
cd CaptchaOCR
3. 添加 Tesseract 依赖
dotnet add package Tesseract
三、准备验证码图像
将图像命名为 captcha.png,放在项目的运行目录。内容应为清晰可辨的英文字符和数字。
四、编写识别程序
编辑 Program.cs:
using System;
using System.IO;
using Tesseract;
class Program
{
static void Main()
{
string imagePath = "captcha.png";
string tessDataPath = Path.Combine(Environment.CurrentDirectory, "tessdata");
if (!File.Exists(imagePath))
{
Console.WriteLine("找不到图像文件 captcha.png");
return;
}
try
{
using var engine = new TesseractEngine(tessDataPath, "eng", EngineMode.Default);
engine.SetVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
using var img = Pix.LoadFromFile(imagePath);
using var page = engine.Process(img);
string text = page.GetText().Trim();
string cleaned = System.Text.RegularExpressions.Regex.Replace(text, "[^A-Za-z0-9]", "");
Console.WriteLine($"识别结果为: {cleaned}");
}
catch (Exception e)
{
Console.WriteLine("识别出错:" + e.Message);
}
}
}
五、准备 tessdata 数据文件
从 Tesseract 官方仓库或你本地安装目录复制 eng.traineddata 到程序目录的 tessdata/ 文件夹中。
目录结构如下:
CaptchaOCR/
├── captcha.png
├── tessdata/
│ └── eng.traineddata
├── Program.cs
六、运行程序
dotnet run
输出示例:
识别结果为: G7TK2
七、功能拓展建议
加入图像灰度化、二值化处理(通过 Emgu.CV 或 ImageSharp)
封装为 Windows 桌面工具(WPF/WinForms)
构建为 Web API 接口(ASP.NET Core Web API)
支持批量图像识别、自动登录提交验证码
浙公网安备 33010602011771号