使用 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年+ 资深研发老鸟,是软件项目管理师,也是快乐的程序猿,持续免费分享全栈实用编程技巧、项目管理经验和职场成长心得!欢迎点击下方卡片关注老杨的公众号(名称:代码掌控者)!

相关推荐
开开心心就好3 小时前
音频降噪剪辑工具,音量裁剪一键处理
运维·服务器·前端·spring·ocr·音视频·1024程序员节
泛凡(Linyongui)4 小时前
基于 CW32L010 的智能厨卫调温旋钮方案--低成本 EC21 编码旋钮全解析
单片机·嵌入式硬件·c#
开开心心就好6 小时前
竖式除法出题工具,整除余数混合模式
运维·服务器·前端·javascript·ocr·perl·1024程序员节
暴走约伯6 小时前
【VFX工具链源码拆解 02】告别机械劳动(上):一键统改百个子粒子颜色与批量重命名
3d·unity·c#·材质
信息安全失业大专人员7 小时前
每日了解一个智能体-WorkBuddy
开发语言·ai·c#·智能体
呆呆敲代码的小Y8 小时前
【实战精选面试题】C# 面试题详细解答,按难易程度排序
android·java·游戏·c#·游戏开发·unity面试题·c#面试题
淡海水9 小时前
09-01-内存-Unity资源生命周期全景
unity·c#·游戏引擎·.netcore·gc
椒颜皮皮虾྅12 小时前
让 C# 读懂整张图:DeploySharp 驱动 PaddleOCR v4/v5/v6,打通 OCR 全流程
开发语言·人工智能·深度学习·学习·c#·ocr·cuda
昂好的day12 小时前
C# 同步异步与多线程:Thread / Task / 线程池一次讲透(上篇)
开发语言·windows·c#
吃一碗粉只付一碗钱21 小时前
12-给SPA友好的401和403响应
c#·状态模式