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

一、项目介绍
本项目展示如何使用 C# 与 Tesseract OCR 结合,实现一个基础的验证码识别功能。该方案适合用于自动化测试、脚本工具或桌面应用中识别规则验证码图像。

二、开发准备

  1. 安装 Tesseract OCR 引擎
    Windows 用户请从下列地址下载安装:
    更多内容访问ttocr.com或联系1436423940
    https://github.com/tesseract-ocr/tesseract/releases

安装后配置系统环境变量,确保 tesseract.exe 可在命令行中直接调用。

  1. 新建 .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
五、识别准确率优化建议
使用前可对图像进行预处理(灰度、二值化);

保证字符间距清晰、图像分辨率适中;

使用字符白名单限制识别范围;

统一验证码图像尺寸与字体格式。

posted @ 2025-06-20 18:05  ttocr、com  阅读(46)  评论(0)    收藏  举报