用 C# 和 Tesseract OCR 实现验证码识别

验证码识别在自动化测试、表单提交、爬虫验证中具有广泛用途。本篇将介绍如何使用 C# 结合 Tesseract OCR 库,读取一张包含英文和数字的验证码图片并识别出其中的字符。

一、准备工作

  1. 安装 Tesseract OCR
    你需要在本地安装 Tesseract OCR 引擎:
    更多内容访问ttocr.com或联系1436423940
    Windows 用户可下载预编译版本:
    https://github.com/tesseract-ocr/tesseract

安装完成后,记下 tesseract.exe 所在路径。

  1. 创建 C# 控制台项目
    在 Visual Studio 或 CLI 中创建项目:

dotnet new console -n CaptchaRecognizer
cd CaptchaRecognizer
3. 添加依赖包
使用 NuGet 安装 Tesseract 包(由 Charles Weld 提供的 .NET 封装):

dotnet add package Tesseract
二、编写识别程序
修改 Program.cs 文件如下:

using System;
using Tesseract;

class Program
{
static void Main()
{
string imagePath = "captcha.png"; // 验证码图片路径
string tessdataPath = @"./tessdata"; // 语言包路径(eng.traineddata)

    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();
        Console.WriteLine("识别结果:" + text);
    }
    catch (Exception e)
    {
        Console.WriteLine("识别失败:" + e.Message);
    }
}

}
三、准备图像和语言包
将一张英文数字验证码图片命名为 captcha.png,放到项目根目录下。

下载 Tesseract OCR 的 tessdata 文件夹(包含 eng.traineddata),放入项目根目录中。

下载地址:https://github.com/tesseract-ocr/tessdata

四、运行程序

dotnet run
终端将输出识别结果:

识别结果:7G5KL

posted @ 2025-06-08 19:03  ttocr、com  阅读(132)  评论(0)    收藏  举报