使用 C# + IronOcr,轻松实现图片文字自动识别(OCR)和提取

前言

嗨,大家好!

你了解图片文字识别技术(OCR)吗?

所谓的图片文字识别,简单地说,就是识别并提取图片中的文字,英文简称为 OCR。

近年来,这项技术得到了广泛应用,成为了提升工作效率的利器,想像一下,你需要将某张图片上的文字录入信息库,看着图片一个字一个字的敲打录入,那有该多辛苦!

如果有一个图片文字识别提取工具,点击一下,就能将图片上的文字直接提取出来,这该有多方便!

今天,我们就来聊聊如何使用 C# 实现 OCR 功能,并分享一个详细的例子。

话不多说,我们直接开始吧!

Step By Step 详细步骤

1. 创建项目

创建一个 WinForms 应用桌面程序项目,命名为 "WinFormsOCRSample"

2. 安装 Nuget 包

在项目中添加以下 NuGet 包

bash 复制代码
<PackageReference Include="IronOcr" Version="2023.5.35" />
<PackageReference Include="IronOcr.Languages.Chinese" Version="2020.11.2" />

注意 :如果不装 IronOcr.Languages.Chinese,识别中文时会变成乱码,所以一定要记得装这个包!

3. 设计窗体

接下来,在主窗体上放置两个文本框和一个按钮。

第一个文本框用于输入图片路径,第二个文本框用于显示识别结果,按钮则用于触发 OCR 操作。

如下图:

4. 编写文字自动识别代码

双击窗体上按钮,自动生成按钮单击事件并跳转到代码界面,编写如下代码,留意其中的注释

csharp 复制代码
using IronOcr;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WinFormsOCRSample
{
    public partial class frmImgOCR : Form
    {
        public frmImgOCR()
        {
            InitializeComponent();
        }

        private void btnOcr_Click(object sender, EventArgs e)
        {
            // 初始化 OCR 引擎
            var ocr = new IronTesseract();

            // 配置不读取二维码
            ocr.Configuration.ReadBarCodes = false;

            // 设置语言为简体中文
            ocr.Language = OcrLanguage.ChineseSimplifiedBest;

            using (var ocrInput = new OcrInput())
            {
                // 加载图片
                ocrInput.AddImage(txtFilePath.Text.Trim());

                // 提高识别质量的设置(可选)
                ocrInput.Deskew();  	// 仅当图片倾斜时使用
                // ocrInput.DeNoise();  // 仅当图片包含数字噪声时使用

                // 执行 OCR 并获取结果
                var ocrResult = ocr.Read(ocrInput);
                txtResult.Text = ocrResult.Text;  // 显示识别结果
            }
        }
    }
}
5. 运行并测试

准备一个有文字的图片,如下图:

运行程序,输入图片路径,点击 "文字识别" 按钮,很快地就自动识别出图片上的文字,并输出结果,如下图:

总结

搞定!是不是比想象中简单?只需要几行代码,就让 C# 轻松实现图片文字的自动识别,而且,准确率还不错!

事实上,除了图片上文字,PDF 也可以轻松识别,你可以在 IronOcr 的官网上解锁更多姿势!

看到这里,你是不是也心动了,赶快也尝试一下吧!

好了,今天的分享就到这里啦,如果觉得有用,别忘了点个【赞与在看】哦,你的支持是我最大的动力!

最后,如果你有更好的想法或建议,欢迎留言讨论!

往期精彩

  1. 把 C# 里的 HttpClient 封装起来,告别复杂的配置,让 Restful API 调用更轻松更高效
  2. C#12 中 5 个节省你开发时间的的改进
  3. C# 静态类,高手不想让你知道的 15 个真相
  4. 封装一个 C# 范围判断函数,从此告别重复编写范围判断代码的烦恼
  5. 用 C# Stopwatch 计时,让代码性能飞起来!
  6. 轻装上阵,Visual Studio LocalDB:.NET 程序员的本地数据库神器
  7. 封装一个C#万能基础数据类型转换器,一招解决所有基础类型转换烦恼
  8. 闲话 .NET(7):.NET Core 能淘汰 .NET FrameWork 吗?
  9. 常用的 4 种 ORM 框架(EF Core,SqlSugar,FreeSql,Dapper)对比总结
  10. C# AutoMapper 10个常用方法总结
  11. C# 7个方法比较两个对象是否相等
  12. C# 去掉字符串最后一个字符的 4 种方法

我是老杨,一个执着于编程乐趣、至今奋斗在一线的 10年+ 资深研发老鸟,是软件项目管理师,也是快乐的程序猿,持续免费分享全栈实用编程技巧、项目管理经验和职场成长心得!欢迎点击下方卡片关注老杨的公众号(名称:代码掌控者)!

相关推荐
hhh3u3u3u14 小时前
Visual C++ 6.0中文版安装包下载教程及win11安装教程
java·c语言·开发语言·c++·python·c#·vc-1
加号314 小时前
【C#】实现沃德普线光控制器通信控制(附完整源码)
开发语言·c#
lzhdim15 小时前
SharpCompress:跨平台的 C# 压缩与解压库
开发语言·c#
weixin_66816 小时前
OCR 模型深度对比分析报告 - AI分析
人工智能·ocr
weixin_4080996716 小时前
【完整教程】天诺脚本如何调用 OCR 文字识别 API?自动识别屏幕文字实战(附代码)
前端·人工智能·后端·ocr·api·天诺脚本·自动识别文字脚本
~plus~17 小时前
.NET 8 C# 委托与事件实战教程
网络·c#·.net·.net 8·委托与事件·c#进阶
beyond谚语18 小时前
接口&抽象类
c#·接口隔离原则·抽象类
新手小新19 小时前
C#学习笔记1-在VS CODE部署C#开发环境
笔记·学习·c#
guslegend19 小时前
第6节:OCR文本错漏频发?结合LLM纠错,让图像文本也能精确使用
人工智能·大模型·ocr·rag
rockey62721 小时前
AScript动态脚本多语言环境支持
sql·c#·.net·script·eval·function·动态脚本