使用 C# 与 Tesseract 实现验证码识别工具
一 项目概述
本项目使用 .NET 和开源 OCR 引擎 Tesseract 构建一个 Windows 控制台应用,用于读取图像中的验证码信息。支持识别英文字符和数字,适合用于测试系统 自动登录或其他图像文字提取场景。
二 环境准备
1 安装 Visual Studio
建议安装带有 .NET 桌面开发工作负载的 Visual Studio 版本
更多内容访问ttocr.com或联系1436423940
2 安装 Tesseract OCR 引擎
从官网下载并安装
地址 tesseract dot ocr dot sourceforge dot net
确保安装后 tesseract 可通过系统路径访问
3 创建项目
在 Visual Studio 中创建一个新的 控制台应用(.NET 6 或 .NET Framework 均可)
安装 NuGet 包
Tesseract
System Drawing Common
Install-Package Tesseract
Install-Package System.Drawing.Common
三 准备验证码图像
将验证码图像保存为 captcha.png 放在项目输出目录中 如 bin Debug net6 point 0
四 核心识别代码
编辑 Program.cs
using System;
using System.Drawing;
using Tesseract;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string imagePath = "captcha.png";
string tessDataPath = @"tessdata"; // 放置 eng.traineddata 的目录
    var ocrEngine = new TesseractEngine(tessDataPath, "eng", EngineMode.Default);
    ocrEngine.SetVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
    using var img = Pix.LoadFromFile(imagePath);
    using var page = ocrEngine.Process(img);
    string text = page.GetText();
    // 提取英文和数字
    var cleaned = Regex.Replace(text, @"[^A-Za-z0-9]", "");
    Console.WriteLine("识别结果为: " + cleaned);
}
}
五 运行程序
1 将 tessdata 目录包含 eng traineddata 放入项目根目录
2 将 captcha.png 放入可执行文件同目录
3 运行程序
输出示例
识别结果为 M7X2B
六 提升识别准确率建议
使用 System Drawing 灰度化图像或进行阈值处理
仅裁剪验证码区域
设置白名单避免识别干扰字符
若验证码风格一致 可训练自定义模型
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号