使用 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 灰度化图像或进行阈值处理

仅裁剪验证码区域

设置白名单避免识别干扰字符

若验证码风格一致 可训练自定义模型

posted @ 2025-07-05 20:14  ttocr、com  阅读(39)  评论(0)    收藏  举报