用 C# 和 Tesseract 实现英文数字验证码识别

news/2025/11/24 23:44:45/文章来源:https://www.cnblogs.com/ocr12/p/19266231

验证码识别是一项常见的图像处理任务,尤其在自动化测试和数据采集场景中非常实用。本文将介绍如何在 C# 环境下,结合 Tesseract OCR 完成英文数字验证码的自动识别。

一、开发环境准备

  1. 安装 Visual Studio

建议使用 Visual Studio 2019 或以上版本,安装时确保勾选:

.NET 桌面开发

C++ 生成工具(因 Tesseract 需要用到)
更多内容访问ttocr.com或联系1436423940
2. 下载和配置 Tesseract OCR

下载 Windows 版 Tesseract:https://github.com/tesseract-ocr/tesseract

安装后,添加其安装目录(如 C:\Program Files\Tesseract-OCR)到系统环境变量中。

二、创建项目

在 Visual Studio 中:

新建 控制台应用(.NET 6 或 .NET Framework)

安装 NuGet 包:

Install-Package Tesseract

三、项目结构说明

准备一张验证码图片(如 captcha.png)放入 bin/Debug/net6.0/ 目录。

四、核心识别代码

以下是完整的 C# 示例程序:

using System;
using System.IO;
using Tesseract;
using System.Drawing;
using System.Drawing.Imaging;

class Program
{
static void Main(string[] args)
{
string tessPath = @"C:\Program Files\Tesseract-OCR\tessdata"; // tesseract 数据路径
string imagePath = "captcha.png";

    // 灰度预处理string grayImagePath = "gray_captcha.png";ConvertToGrayscale(imagePath, grayImagePath);using var engine = new TesseractEngine(tessPath, "eng", EngineMode.Default);using var img = Pix.LoadFromFile(grayImagePath);using var page = engine.Process(img);string text = page.GetText().Trim();Console.WriteLine("识别结果: " + text);
}static void ConvertToGrayscale(string inputPath, string outputPath)
{using var bmp = new Bitmap(inputPath);using var grayBmp = new Bitmap(bmp.Width, bmp.Height);for (int y = 0; y < bmp.Height; y++){for (int x = 0; x < bmp.Width; x++){Color c = bmp.GetPixel(x, y);int gray = (int)(c.R * 0.3 + c.G * 0.59 + c.B * 0.11);grayBmp.SetPixel(x, y, Color.FromArgb(gray, gray, gray));}}grayBmp.Save(outputPath, ImageFormat.Png);
}

}

五、运行结果

执行后,输出如下:

识别结果: A3ZB7

你可以用不同的英文数字验证码图片进行测试。

六、提升识别率的建议

使用图像处理库(如 OpenCvSharp)进行边缘去噪、图像增强

增加 Tesseract 参数控制(如 PSM 模式设为 7)

对字体模糊验证码,可考虑深度学习模型如 CNN

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/975418.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有了TCP为什么还需要HTTP?再用RPC?这次彻底讲明白了

记得刚工作那会儿,第一次接触RPC概念时,我内心满是疑惑——明明HTTP用得好好的,为什么要搞出个RPC?直到参与了几个微服务项目后,我才真正能理解它们各自的价值。今天,就让我们一起理清这些协议之间的关系。掘金原…

11.24午夜盘思

1、大盘无忧; 2、情绪方面:中水渔业7连板,如果午后没有打开涨停爆量,当然可以当做空间突破,但打开了涨停,说明连板的接力没那么疯狂,我看了一下连板的晋级率,并没有特别高,所以连板是否宽容,还需要再看一天,…

Spring AI 代码分析(七)--文档的处理

文档处理能力分析 请关注微信公众号:阿呆-bot 1. 工程结构概览 Spring AI 提供了完整的文档处理能力,包括文档读取、文本分块和预处理。这些能力是 RAG 应用的基础。 document-readers/ # 文档读取器…

Java调用第三方接口的方法

.方式一:通过JDK网络类Java.net.HttpURLConnection (1)HttpClientUtil工具类 public class HttpClientUtil { //以post方式调用对方接口方法 public static String doPost(String pathUrl, String data){ …

2025留学代写危机应对指南:5家靠谱机构助你重返校园

2025留学代写危机应对指南:5家靠谱机构助你重返校园留学期间因代写被抓,不仅可能面临挂科、处分,更会影响签证合法性与学业连续性,严重时甚至被遣返。这类危机的处理需精准把握海外院校学术诚信政策、申诉流程及沟…

2025美国大学停学应对全攻略:5大靠谱机构助你重返学术轨道

2025美国大学停学应对全攻略:5大靠谱机构助你重返学术轨道美国高校以严格的学术标准和管理体系著称,不少中国留学生因学术表现不佳、出勤问题或文化适应障碍遭遇停学危机。停学不仅打乱留学计划,更可能影响签证状态…

2025美国紧急转学机构推荐深度解析:靠谱机构认准这些核心优势,危机中重启留学之路​

2025美国紧急转学机构推荐深度解析:靠谱机构认准这些核心优势,危机中重启留学之路​美国留学期间,因学业适应、专业匹配、院校环境等问题需要紧急转学的情况屡见不鲜。紧急转学时间紧、院校空缺信息多变,且需精准匹…

第35天(中等题 数据结构)

打卡第三十五天 2道中等题题目:思路:先统计每个数字的出现次数,遍历数组,对于每个数字 i,检查 target - i 是否存在且还有剩余次数,找到一对就减少两个数字的计数 代码: class Solution { public:vector<vec…

2025美国留学求职机构实力解析:你的职场Offer引路人在哪?

2025美国留学求职机构实力解析:你的职场Offer引路人在哪?美国作为全球教育与就业的核心高地,其留学申请的复杂性与职场竞争的激烈程度双重叠加,让专业的留学求职机构成为学子们的重要助力。优质机构不仅能攻克院校…

Universal Fit 3-Button Metal Flip Remote Key (5pcs/lot) – KEYDIY KD NB29-3 for Euro/American Cars

Universal Remote Keys for European & American Vehicles: The KD NB29-3 Solution Problem: The Key Replacement Headache For automotive repair shops and car owners in Europe and America, finding reliab…

2025美国科研中介TOP5解析:从课题对接至成果落地全程护航

2025美国科研中介TOP5解析:从课题对接至成果落地全程护航美国顶尖高校的申请中,优质科研经历已成为核心竞争力,而科研课题匹配、教授资源对接、成果转化等环节的专业性,让美国科研中介成为学子的重要助力。本文综合…

根据缺少的文件查找deb包

有时候运行程序会出现有的文件找不到但是你又不知道在哪个包里面的问题。 下载这个可能需要fq。 sudo apt install apt-file sudo apt-file update # 寻找libncurses.so.5的deb包 sudo apt-file find libncurses.so.5 …

第一个Vue2程序

在文件开头引入 Vue<script src = "../js/vue.js"></script>创建 Vue 托管的容器<div id="app"> </div>创建 Vue 并挂载到 id 为 app 的 html 元素上new Vue({template :…

2025美国留学生求职中介TOP5:厚仁教育领衔,精准匹配名企资源

2025美国留学生求职中介TOP5:厚仁教育领衔,精准匹配名企资源美国作为全球职业发展高地,其求职市场竞争激烈、招聘流程独特,签证政策与身份规划更是留学生求职的关键壁垒。专业的美国求职中介能凭借本土资源、行业经…

2025年11月美国付费实习中介实力榜:谁为你的职场竞争力加码?实战派机构都有这些特质

2025年11月美国付费实习中介实力榜:谁为你的职场竞争力加码?实战派机构都有这些特质美国作为全球职业发展高地,优质实习经历是留学生突破就业壁垒的核心竞争力。但美国企业实习申请流程严苛、人脉资源壁垒高,专业的…

CF1097F Alex and a TV Show

Sol 思路挺曲折的。 以下所有公式均表示模 \(2\) 意义下的答案。 假设 \(s_i\) 表示集合 \(s\) 的 \(i\) 的出现次数对 \(2\) 取模的余数。 如果没有 \(3\) 操作直接 bitset 就可以了。 令 \(V\) 表示值域上限。考虑 \…

Git 最速上手

配置git身份git config --globle user.name "用户名" git config --globle user.email "邮箱"初始化本地 Git 仓库git init将项目文件添加到暂存区git add ." . " 会将当前目录下所有文…

Ubuntu 24.04 安装 libncurses.so.5

用Ubuntu24在编译AOSP时遇到这个问题。 参考:https://askubuntu.com/questions/1531398/how-to-install-libncurses-so-5-for-ubuntu-24-04 解决: # 注意权限,可以先创建,再给写权限 echo "deb http://securi…

Universal 3-Button Flip Remote Key for VW - 5pcs/Lot (VW Compatible, Mechanic Owner Friendly)

KEYDIY KD NB34-3 Universal Flip Remote Key: The Solution to VW Key Woes In the world of automotive repair, few issues cause as much frustration as unreliable, overpriced key replacements—especially fo…

48

所学时间:10小时 博客量:1 代码量:几百 所学知识:人机交互,ai故事生成平台前端