通過C#和IronOcr實現(xiàn)圖片文字自動識別(OCR)和提取
前言
嗨,大家好!
你了解圖片文字識別技術(OCR)嗎?
所謂的圖片文字識別,簡單地說,就是識別并提取圖片中的文字,英文簡稱為 OCR。
近年來,這項技術得到了廣泛應用,成為了提升工作效率的利器,想像一下,你需要將某張圖片上的文字錄入信息庫,看著圖片一個字一個字的敲打錄入,那有該多辛苦!
如果有一個圖片文字識別提取工具,點擊一下,就能將圖片上的文字直接提取出來,這該有多方便!
今天,我們就來聊聊如何使用 C# 實現(xiàn) OCR 功能,并分享一個詳細的例子。
話不多說,我們直接開始吧!
Step By Step 詳細步驟
1. 創(chuàng)建項目
創(chuàng)建一個 WinForms 應用桌面程序項目,命名為 “WinFormsOCRSample”
2. 安裝 Nuget 包
在項目中添加以下 NuGet 包
<PackageReference Include="IronOcr" Version="2023.5.35" /> <PackageReference Include="IronOcr.Languages.Chinese" Version="2020.11.2" />
注意:如果不裝 IronOcr.Languages.Chinese,識別中文時會變成亂碼,所以一定要記得裝這個包!
3. 設計窗體
接下來,在主窗體上放置兩個文本框和一個按鈕。
第一個文本框用于輸入圖片路徑,第二個文本框用于顯示識別結果,按鈕則用于觸發(fā) OCR 操作。
如下圖:

4. 編寫文字自動識別代碼
雙擊窗體上按鈕,自動生成按鈕單擊事件并跳轉到代碼界面,編寫如下代碼,留意其中的注釋:
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(); // 僅當圖片包含數字噪聲時使用
// 執(zhí)行 OCR 并獲取結果
var ocrResult = ocr.Read(ocrInput);
txtResult.Text = ocrResult.Text; // 顯示識別結果
}
}
}
}
5. 運行并測試
準備一個有文字的圖片,如下圖:

運行程序,輸入圖片路徑,點擊 “文字識別” 按鈕,很快地就自動識別出圖片上的文字,并輸出結果,如下圖:

總結
搞定!是不是比想象中簡單?只需要幾行代碼,就讓 C# 輕松實現(xiàn)圖片文字的自動識別,而且,準確率還不錯!
事實上,除了圖片上文字,PDF 也可以輕松識別,你可以在 IronOcr 的官網上解鎖更多姿勢!
看到這里,你是不是也心動了,趕快也嘗試一下吧!
以上就是通過C#和IronOcr實現(xiàn)圖片文字自動識別(OCR)和提取的詳細內容,更多關于C# IronOcr圖片文字自動識別和提取的資料請關注腳本之家其它相關文章!
相關文章
英雄聯(lián)盟輔助lol掛機不被踢的方法(lol掛機腳本)
lol掛機不會被踢,調用API設置鼠標位置并模擬鼠標右鍵讓人物走動2013-12-12
C#?EF?Core可視化工具的使用及EF?Core入門語句操作代碼
EF?Core?可用作對象關系映射程序?(O/RM),以便于?.NET?開發(fā)人員能夠使用?.NET?對象來處理數據庫,這樣就不必經常編寫大部分數據訪問代碼了,接下來通過本文給大家介紹C#?EF?Core可視化工具的使用及EF?Core入門語句,感興趣的朋友一起看看吧2022-02-02
C# char[]與string byte[]與string之間的轉換詳解
在本篇文章里小編給大家分享的是關于C# char[]與string byte[]與string之間的轉換的知識點內容,需要的朋友們參考下2019-11-11
C#實現(xiàn)DataTable轉換成IList的方法
這篇文章主要介紹了C#實現(xiàn)DataTable轉換成IList的方法,涉及C#針對DataTable操作的相關技巧,需要的朋友可以參考下2016-03-03

