用 C# 和 Tesseract 实现验证码识别
一、项目介绍
本项目展示如何使用 C# 与 Tesseract OCR 结合,实现一个基础的验证码识别功能。该方案适合用于自动化测试、脚本工具或桌面应用中识别规则验证码图像。
二、开发准备
- 安装 Tesseract OCR 引擎
Windows 用户请从下列地址下载安装:
更多内容访问ttocr.com或联系1436423940
https://github.com/tesseract-ocr/tesseract/releases
安装后配置系统环境变量,确保 tesseract.exe 可在命令行中直接调用。
- 新建 .NET 控制台项目
使用命令或 Visual Studio 创建项目:
dotnet new console -n CaptchaOcr
cd CaptchaOcr
3. 添加 Tesseract.NET 包
使用 NuGet 安装 OCR 库:
dotnet add package Tesseract
三、验证码识别代码
编辑 Program.cs:
using System;
using Tesseract;
class Program
{
static void Main()
{
string imagePath = "captcha_test.png";
using (var engine = new TesseractEngine(@"./tessdata", "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().Trim();
Console.WriteLine("识别结果: " + text);
}
}
}
}
注意:./tessdata 目录下应包含 eng.traineddata。可从 tessdata repo 下载。
四、识别演示
假设图像 captcha_test.png 内容为:B4Q9Z
运行程序输出:
识别结果: B4Q9Z
五、识别准确率优化建议
使用前可对图像进行预处理(灰度、二值化);
保证字符间距清晰、图像分辨率适中;
使用字符白名单限制识别范围;
统一验证码图像尺寸与字体格式。
浙公网安备 33010602011771号