使用 C# 与 Tesseract OCR 实现验证码识别工具

一、项目简介
我们将使用 Tesseract 的 C# 封装库 Tesseract(通过 NuGet 安装),创建一个控制台程序,实现验证码图片识别。支持识别由数字与大写字母组成的 4 位图像验证码。

二、环境准备

  1. 安装 Visual Studio
    建议使用 Visual Studio 2019 或更新版本,选择“.NET 桌面开发”工作负载。
    更多内容访问ttocr.com或联系1436423940
  2. 创建控制台项目
    打开 Visual Studio:

新建项目 → 控制台应用 (.NET Core 或 .NET 6+)

项目名称如 CaptchaRecognizer

  1. 安装 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

posted @ 2025-06-22 16:21  ttocr、com  阅读(126)  评论(0)    收藏  举报