IRONSOFTWAREHOME
USING IRONOCR

如何在 C# 中建立字元識別

Kannaopat Udonpant
Kannapat Udonpant
Updated: 2026年4月21日

光學字元辨識(OCR)技術允許將文字轉換成機器可讀的數位格式。 當文件被掃描時(例如發票或收據),電腦將其保存為圖像文件。然而,掃描圖像中的文字無法使用普通文字編輯器進行編輯、搜尋或計數。

OCR可以處理圖像,提取文字,並將其轉換為電腦可讀的文字格式。 這使得可以從多個來源提取文字,包括PDF文件和其他掃描圖像。 此外,OCR功能超越了簡單的文字提取,它包括主要的圖像格式和PDF文件,將它們轉換為可搜尋的OCR資料。

在C#中,開發者可以通過各種程式庫利用OCR的強大功能,其中之一就是由Iron Software開發的IronOCR強大程式庫。 在本教程中,我們將探討OCR的基礎知識,並展示如何利用IronOCR在C#中高效地進行字元辨識。

How to create Character Recognition in C#

  1. 建立一個全新的C#專案,並在Visual Studio中為專案命名。
  2. 安裝IronOCR .NET程式庫,並將其包括在專案文件夾中。
  3. 利用IronOCR Tesseract從圖像中讀取文字。
  4. 利用IronOCR高級功能來讀取圖像中的文字。
  5. 調整IronOCR讀取操作的性能。

開始使用IronOCR

IronOCR是一個由Iron Software開發的C#程式庫,提供先進的OCR功能。 它提供從圖像、PDF和掃描文件中準確提取文字的功能。 在我們深入探討程式碼之前,請確認您已在專案中安裝IronOCR。

來自Iron SoftwareIronOCR的關鍵功能

改進的Tesseract OCR引擎

IronOCR通過提高準確性和速度提升了廣泛使用的Tesseract OCR引擎的能力。 它是一個強大的解決方案,可從各種來源提取文字,包括圖像、PDF和多種文件格式。

廣泛的語言覆蓋範圍

IronOCR支持超過125種語言,熟練處理多語言需求,是要求語言多樣性應用的理想選擇。

多樣的輸出選擇

提取的文字可以方便地作為純文字或結構化資料輸出,以實現與進一步處理流水線的無縫整合。 此外,IronOCR還方便地直接從圖像輸入建立可搜尋的PDF。

跨平台適應性

專為C#、F#和VB.NET的相容性而設計,IronOCR在各種.NET環境中無縫運行,包括版本8、7、6、Core、Standard和Framework。

利用Tesseract 5

IronOCR利用Tesseract 5的強大功能,精細調整以在.NET生態系統中達到最佳性能。

基於區域的OCR功能

使用IronOCR,使用者可以精確定義文件中的特定區域,實現目標OCR處理。 此功能通過將處理能力集中在需要的地方,提高了準確性和效率。

圖像預處理工具

該程式庫提供了一套圖像預處理功能,如去斜和降噪。 即使面對不完美的源圖像,這些工具也能保證更好的結果,最終提升整體OCR體驗。

現在,我們將開發一個演示應用程式,利用IronOCR從圖像中讀取文字。

先決條件

  1. **Visual Studio:**請確保您已安裝Visual Studio或任何其他C#開發環境。
  2. **NuGet 包管理器:**請確保NuGet存在,以便管理項目中的套件。

步驟1:在Visual Studio中建立一個新的C#專案

開始時,讓我們建立一個使用Visual Studio的控制台應用程式,如下所示。

如何在C#中建立字元辨識:圖1 - 在Visual Studio中建立一個全新的C#專案

在下方提供專案名稱和位置。

如何在C#中建立字元辨識:圖2 - 提供專案名稱和保存位置

為專案選擇所需的.NET版本。

如何在C#中建立字元辨識:圖3 - 選擇專案的適當.NET版本

點擊"建立"按鈕以建立新的專案。

步驟2:安裝IronOCR程式庫並將其整合到您的專案中

IronOCR可以在NuGet包管理器控制台中找到,如下所示。 使用提供的命令安裝套件。

如何在C#中建立字元辨識:圖4 - IronOCR NuGet包管理器下載頁面

使用Visual Studio NuGet包管理器,搜尋IronOCR並將其安裝到您的專案文件夾。

如何在C#中建立字元辨識:圖5 - 透過NuGet包管理器的瀏覽選項卡搜尋IronOCR

一旦安裝完畢,應用程式便可以利用IronOCR從圖像中讀取文字。

步驟3:利用IronOCR Tesseract從圖像中讀取文字

IronOCR乃是唯一提供Tesseract 5 OCR能力的.NET程式庫。 目前它仍然是所有程式語言中最先進的Tesseract 5程式庫。 IronOCR無縫整合了Tesseract 5到各種.NET環境中,包括Framework、Standard、Core、Xamarin和Mono,確保對整個生態系統的全面支持。

請考慮以下圖像文件作為輸入。 現在,讓我們看看如何讀取這個圖像文件中的文字。

如何在C#中建立字元辨識:圖6 - 範例輸入

using IronOcr;

public class Program
{
    public static void Main(string[] args)
    {
        var ocrTesseract = new IronTesseract();
        using var ocrInput = new OcrInput();
        ocrInput.LoadImage(@"sample1.png");
        var ocrResult = ocrTesseract.Read(ocrInput);
        Console.WriteLine(ocrResult.Text);
    }
}

程式碼解釋

  1. **IronTesseract實例:**我們首先建立一個IronTesseract實例以執行OCR操作。
  2. **載入圖像:**我們將樣本圖像載入到OcrInput物件中。
  3. **讀取文字:**讀取圖像中的文字,並將結果列印到控制台。

輸出

如何在C#中建立字元辨識:圖7 - 使用IronOCR提取的文字

步驟4:利用IronOCR的高階功能讀取圖像中的文字

IronTesseract.Configuration物件使高級使用者能夠存取C#/.NET內的底層Tesseract API,從而進行細緻配置設置以進行微調和優化。 以下是一些可行的高級配置。

語言選擇

您可以使用Language屬性指定OCR的語言。 例如,要將語言設置為英語,請使用:

IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;

頁面分割模式

PageSegmentationMode決定了Tesseract如何對輸入圖像進行分割。 選項包括AutoOsd、SingleBlock、SingleLine等。 例如:

ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

自定義Tesseract變數

您可以通過設置特定變數來微調Tesseract。 例如,要禁用並行處理:

ocr.Configuration.TesseractVariables["tessedit_parallelize"] = false;

列入和排除字元名單

使用WhiteListCharacters和BlackListCharacters來控制Tesseract識別哪些字元。 例如:

ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
ocr.Configuration.BlackListCharacters = "`ë|^";

額外配置變數

探索其他Tesseract配置變數以根據您的需求自定義行為。 例如:

ocr.Configuration.TesseractVariables["classify_num_cp_levels"] = 3;
ocr.Configuration.TesseractVariables["textord_debug_tabfind"] = 0;
// ... (more variables)

現在讓我們嘗試使用高級設置來解碼相同的圖像

using IronOcr;

public class Program
{
    public static void Main()
    {
        Console.WriteLine("Decoding using advanced features");
        var ocrTesseract = new IronTesseract() // Create instance
        {
            Language = OcrLanguage.EnglishBest, // Configure best English language
            Configuration = new TesseractConfiguration()
            {
                ReadBarCodes = false, // Disable reading barcodes
                BlackListCharacters = "`ë|^", // Blacklisted characters
                WhiteListCharacters = null, // No whitelist, allow all
                PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
                TesseractVariables = null, // No custom variables used
            },
            MultiThreaded = false,
        };
        
        using var ocrInput = new OcrInput(); // Create a disposible ocr input object
        ocrInput.AddImage(@"sample1.png"); // Load the sample image
        var ocrResult = ocrTesseract.Read(ocrInput); // Read the text from the image
        Console.WriteLine(ocrResult.Text); // Output the text
    }
}

程式碼解釋

  1. **IronOCR配寘:**建立了一個IronTesseract(主要的IronOCR類)實例並將其分配給變數ocrTesseract

    配寘設置應用於ocrTesseract

    • **語言:**指定OCR的語言(本例中為英語)。
    • **配寘:**一個TesseractConfiguration物件,允許進一步自定義:
      • ReadBarCodes:禁用條碼閱讀。
      • BlackListCharacters:指定要排除的字元(不識別的字元)。
      • WhiteListCharacters:未指定白名單,允許所有字元。
      • PageSegmentationMode:將頁面分割模式設置為"AutoOsd"。
      • TesseractVariables:未使用自定義變數。
    • MultiThreaded:禁用多執行緒。
  2. OCR輸入和圖像載入:ocrInput的OcrInput物件。 圖像文件"sample1.png"被新增到ocrInput

  3. **文字提取:**在ocrInput。 結果被儲存在ocrResult變數中。

  4. **輸出:**提取的文字使用Console.WriteLine(ocrResult.Text)列印到控制台。

輸出

如何在C#中建立字元辨識:圖8 - 使用IronOCR提取的文字

步驟5:進行IronOCR讀取操作的性能調整

當使用IronOCR時,您可以存取多個圖像過濾器,這些過濾器可以在進行OCR之前幫助預處理圖像。 這些過濾器優化圖像質量、提高可見性並減少噪點或偽影。 它們有助於提高OCR操作的性能。

  1. 旋轉:

    旋轉過濾器允許您按指定數量的度數順時針旋轉圖像。對於逆時針旋轉,使用負數。

  2. 去斜:

    去斜過濾器校正圖像的傾斜,確保文字直立且正交。 這對於OCR特別有用,因為Tesseract在掃描方向正確時效果最佳。

  3. 縮放:

    縮放過濾器按比例縮放OCR輸入頁面。

  4. 二值化:

    二值化過濾器將每個像素轉換為黑色或白色,中間地帶沒有。 在文字和背景對比度非常低的情況下,它可以提高OCR性能。

  5. 轉為灰度:

    灰度過濾器將每個像素轉換為灰度。 雖然不大可能顯著提高OCR精度,但可能會提高速度。

  6. 反轉:

    反轉過濾器顏色反轉—白色變成黑色,黑色變成白色。

  7. 替換顏色:

    替換顏色過濾器將圖像中的特定顏色替換為另一種顏色,考慮一定閾值。

  8. 對比度:

    對比度過濾器自動增加對比度。它通常能改善低對比度掃描中的OCR速度和準確性。

  9. 膨脹腐蝕:

    這些先進的形態過濾器會操作圖像中物件的邊界。

    • 膨脹增加像素到物件邊界。
    • 腐蝕從物件邊界移除像素。
  10. 銳化:

    銳化過濾器會銳化模糊的OCR文件並將Alpha通道扁平化為白色。

  11. 去噪:

    去噪過濾器去除數位噪聲。應用於預期噪聲的情況。

  12. 深層清理背景噪聲:

    此重加噪聲去除過濾器只應在已知有極端文件背景噪聲時使用。 它可能會降低清潔文件的OCR準度且非常消耗CPU。

  13. 提升解析度:

    增強解析度過濾器會提升低品質圖像的解析度。 由於自動解析度處理,通常不太需要。

以下是如何在C#中使用IronOCR應用過濾器的範例:

var ocr = new IronTesseract();
var input = new OcrInput();
input.LoadImage("sample.png");
input.Deskew();
var result = ocr.Read(input);
Console.WriteLine(result.Text);

常見的OCR應用

  1. **文件數位化:**OCR被廣泛用於將掃描的紙質文件(如發票、收據、表單和合同)轉換為數位格式。 此數位化過程簡化了文件的儲存、檢索和管理,減少了紙張雜亂並提高了效率。
  2. **資料提取:**OCR允許從掃描的文件、圖像和PDF中提取文字和資料。 這些提取資料可以用於自動資料輸入、內容分析、編目以及與資料庫或業務系統整合。
  3. **影像文字辨識:**OCR技術允許從列印的文件和圖像中提取文字以進行編目和搜索用途。 此功能被用於各種應用,包含擴增實境、基於圖像的搜索引擎和翻譯服務。
  4. **自動車牌識別(ALPR):**ALPR系統使用OCR從由安裝在交通監控、停車管理、收費和執法應用的攝像機拍攝的圖像或影片流中讀取車牌號。
  5. **可及性解決方案:**OCR在為視障人士建立可存取內容方面起著至關重要的作用。 通過將圖像或文件中的文字轉換為語音或點字,OCR幫助資訊對於身心障礙人士的可達性。
  6. **身份認證:**OCR技術被用於身份認證過程中,例如掃描和處理身份文件如護照、駕照和身份證。 它協助驗證文件的真偽並提取相關資訊以供身份認證用途。
  7. **銀行與金融:**OCR用於銀行和金融,如閱讀支票、處理發票、將現有的PDF文件轉換、從財務報告中提取資料以及自動化基於文件的工作流程,以提高財務操作的準確性與效率。
  8. **自動化翻譯:**OCR技術整合進翻譯工具和語言學習應用中,用以將印刷文字從一種語言轉換為另一種語言。 使用者可以用他們的裝置捕捉文字,OCR協助將其即時翻譯成所需的語言。
  9. **檔案及歷史文件保存:**OCR被用於將檔案資料和歷史文獻數位化,以數位格式保存以便未來存取、研究和分析,同時確保珍貴文化遺產的保存。

授權要求

IronOCR. 提供以下資訊以取得並寄送您的電子郵件ID的金鑰

如何在C#中建立字元辨識:圖9 - IronPDF試用授權頁面

一旦通過購買或免費試用獲得金鑰,按照以下步驟使用金鑰。

**設置您的授權金鑰:**使用程式碼設定您的IronOCR授權金鑰。 在應用程式啟動時新增以下行(在使用IronOCR之前):

IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";

**全域應用程式金鑰(Web.Config或App.Config):**要在整個應用程式中全域應用金鑰,使用配置文件(Web.Config或App.Config)。 將以下金鑰新增到您的appSettings中:

<configuration>
    <!-- Other settings -->
    <appSettings>
        <add key="IronOcr.LicenseKey" value="IRONOCR-MYLICENSE-KEY-1EF01"/>
    </appSettings>
</configuration>
XML

**使用.NET Core appsettings.json:**對於.NET Core應用程式,在您的專案根目錄中建立一個appsettings.json文件。 用您的授權值替換"IronOcr.LicenseKey"金鑰:

{
    "IronOcr.LicenseKey": "IRONOCR-MYLICENSE-KEY-1EF01"
}
JSON

**測試您的授權金鑰:**通過測試來確認您的金鑰已正確安裝:

bool result = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01");

結論

總的來説,IronOCR提供的OCR具有強大的解決方案,起始於$999。 借助IronOCR的力量,在您的C#專案中開啟一個可能的世界。

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
獲取您的無義務諮詢
填寫以下表格或發送電子郵件至sales@ironsoftware.com
您的詳細資訊將始終保密。
被全球數百萬工程師信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立