使用 C# 和 .NET 進行中文光學字符識別 (OCR)

This article was translated from English: Does it need improvement?
Translated
View the article in English

此文件的其他版本:

IronOCR 是一個C#軟件組件,允許 .NET 程式員從圖像和 PDF 文件中讀取126種語言的文本,包括中文。中文語言包包含簡體中文和繁體中文字符。

它是Tesseract的一個高級分支,專為 .NET 開發人員構建,並且經常在速度和準確性方面超過其他Tesseract引擎。該庫允許識別不同格式的圖像和文檔並支持包括中文在內的多種語言。它支持超過125種語言,並提供高水平的識別準確性,相對於競爭對手。IronOCR 的API設計考慮到了可擴展性和自定義性。您可以通過向追踪器添加您的調整數據或功能來幫助 IronOCR 實現高吞吐量和準確性。IronOCR使用了多種光學字符識別技術。我們可以在 Windows PC、Linux、macOS 和其他知名平台上使用它。

IronOCR.Languages.Chinese 的內容

這個軟體包包含 352 種 .NET 的 OCR 語言:

  • ChineseSimplified
  • ChineseSimplifiedBest
  • ChineseSimplifiedFast
  • ChineseSimplifiedVertical
  • ChineseSimplifiedVerticalBest
  • ChineseSimplifiedVerticalFast
  • ChineseTraditional
  • ChineseTraditionalBest
  • ChineseTraditionalFast
  • ChineseTraditionalVertical
  • ChineseTraditionalVerticalBest
  • ChineseTraditionalVerticalFast

下載

我們可以下載中文語言包 [中文 (中文)] 從以下連結下載: 壓縮

安裝方式 NuGet

使用 IronOCR 處理中文語言

創建或打開 C# 項目

要開始使用 IronOCR,我們需要創建一個 C# .NET 項目。為此我們使用 Visual Studio 2022。您可以根據需要選擇版本。建議使用最新版本的 Visual Studio 以獲得順暢的體驗。我們將創建一個 GUI 界面來選擇圖像。我們還可以通過給定圖片的直接路徑在控制台應用程序中使用 IronOCR。實施以下步驟在 Visual Studio 2022 中創建一個 C# 項目:

  • 打開 Visual Studio 2022。
  • 點擊 "Create a new project" 按鈕。
  • 在搜尋欄中輸入「Windows」,從搜尋結果中選擇「Windows Form」應用程式,然後點擊「下一步」按鈕。
  • 給項目命名。我將此項目命名為"ChineseOCR"。命名後,點擊“下一步”按鈕。
  • 在下一個畫面中選擇.NET框架。根據您的項目需求選擇 .NET 框架。我們為本教程選擇 .NET 5.0 版本。
  • 選擇後,點擊「建立」按鈕。這將輕鬆地在 Visual Studio 中建立 C# Windows Form 專案。

專案已建立,現在可以在 IronOCR 函式庫中使用。我們也可以使用現有的 C# 專案。打開專案並開始安裝 IronOCR 函式庫。以下部分將探討在 C# 專案中安裝 IronOCR 函式庫的方法。

安裝

使用 NuGet 套件管理器

要使用 NuGet 套件管理器安裝 IronOCR 函式庫,我們必須打開 NuGet 套件管理器介面。請按照以下步驟安裝 IronOCR 函式庫:

  • 從主選單中點擊 "工具",從下拉選單中將滑鼠懸停在 "NuGet 套件管理員" 上,然後選擇 "管理方案的 NuGet 套件管理員"。
  • 這將打開 NuGet 套件管理器介面。前往瀏覽標籤並搜尋 IronOCR Chinese。從搜尋結果中選擇正確的套件,然後點擊「安裝」按鈕進行安裝。
  • 它將開始安裝庫。安裝完成後,您將能夠在您的項目中使用IronOCR庫。

使用套件管理器主控台

使用控制台總是容易的選擇。我們也可以使用套件管理器主控台來安裝IronOCR庫。請按照以下步驟安裝IronOCR庫:

  • 在Visual Studio中打開套件管理器主控台。它通常位於Visual Studio的底部。
  • 在控制台中輸入以下命令:
Install-Package IronOCR.Languages.Chinese
  • 您會在控制台看到庫的安裝進度。它會自動安裝庫。安裝完成後,我們的專案將準備好使用 IronOCR 庫。

代碼範例: 中文的OCR

現在,是時候編寫代碼來實現中文的IronOCR庫了。首先,我們必須開發前端來選擇圖像文件。讓我們來看看該如何做。

開發前端

我們將使用 "工具箱" 元素來設計前端。我們會創建一個按鈕、一個圖片框、一個富文本框和兩個標籤。我們將從工具箱中拖放這些元素並將它們放置在 Windows 表單中。我們將以樣式管理這些元素。

按鈕將用於從電腦中選擇圖片文件。圖片框將加載所選的圖片文件,而富文本框將顯示輸出文字。你可以根據需要調整每個元素的大小。最終的前端設計將如下所示:

當您運行項目時,這個窗口會彈出。我們已經將窗口的對齊設置為在屏幕中心顯示。因此,這個屏幕會顯示在中心位置。

我們的前端已經準備好了。接下來,是時候添加按鈕的後端功能了。

使用 IronOCR 的後端代码

首先,我们需要导入 IronOCR 命名空间才能在代码中使用它。在文件顶部写下面这一行:

using IronOCR;
using IronOCR;
Imports IronOCR
VB   C#

我們將使用「選擇圖像」按鈕來選擇圖像並將圖像載入圖片框。IronOCR 將處理簡體中文的圖像並在 Rich Text Box 中顯示輸出文本。我們可以通過雙擊按鈕來添加按鈕的功能。為了添加所描述的功能,請寫下以下代碼行:

private void btn_image_Click(object sender, EventArgs e)
{
    OpenFileDialog open = new OpenFileDialog();
    if (open.ShowDialog() == DialogResult.OK)
    {
        // display image in picture box  
        img_image.Image = new Bitmap(open.FileName);

        var Ocr = new IronTesseract();

Ocr.Language = OcrLanguage.ChineseTraditional;

using (var Input = new OcrInput(open.FileName))
        {
            var Result = Ocr.Read(Input);

            txt_output.Text = Result.Text;
        }
    }
}
private void btn_image_Click(object sender, EventArgs e)
{
    OpenFileDialog open = new OpenFileDialog();
    if (open.ShowDialog() == DialogResult.OK)
    {
        // display image in picture box  
        img_image.Image = new Bitmap(open.FileName);

        var Ocr = new IronTesseract();

Ocr.Language = OcrLanguage.ChineseTraditional;

using (var Input = new OcrInput(open.FileName))
        {
            var Result = Ocr.Read(Input);

            txt_output.Text = Result.Text;
        }
    }
}
Private Sub btn_image_Click(ByVal sender As Object, ByVal e As EventArgs)
	Dim open As New OpenFileDialog()
	If open.ShowDialog() = DialogResult.OK Then
		' display image in picture box  
		img_image.Image = New Bitmap(open.FileName)

		Dim Ocr = New IronTesseract()

Ocr.Language = OcrLanguage.ChineseTraditional

Using Input = New OcrInput(open.FileName)
			Dim Result = Ocr.Read(Input)

			txt_output.Text = Result.Text
End Using
	End If
End Sub
VB   C#

當使用者點擊按鈕時,會出現一個對話框來選擇圖片。當使用者選擇圖片後,圖片會自動加載到圖片框中。我們使用 Bitmap()** 用於在圖片框中列印圖像。之後,IronOCR 將把圖像轉換成中文文本。我們將 Ocr. Language 設置為 ChineseTraditional 以識別繁體中文文本。Ocr. The read 函數將讀取過程並將 OCR 結果存儲在 Result 變數中。如果您需要將文本保存為 PDF、文本或 HTML 格式,可以使用 SaveAs 函數將文件保存為您想要的任何輸出格式—IronOCR 支援多種輸出格式。

執行項目

現在是時候執行項目了。在 Visual Studio 中點擊運行按鈕。我們將在螢幕上看到此畫面。

點擊“選擇圖像”按鈕。將打開選擇文件對話框。選擇一個圖像文件並按回車鍵。

它會將其載入圖片框,自動掃描圖像,並在文字框中顯示輸出。

這是我們選擇的圖片輸出。IronOCR 也支持讀取和掃描 PDF 文件。我們可以使用 PDF 文件的可編輯格式來掃描和識別文本,使用 IronOCR。這也可以用不同的語言來完成。IronOCR 可以使現有的 PDF 文件成為可搜索的 PDF。IronOCR 有許多圖像濾鏡,使圖像清晰可見和理解。以下是濾鏡列表:

  • Input.Binarize()
  • Input.Contrast()
  • Input.Deskew()
  • Input.RemoveNoise()

輸入.Dilate()

  • Input.EnhanceResolution(300)

這些功能都可以提高字符的可見度。IronOCR 使用這些功能來清理並製作可搜索的 PDF。讓我們看看這是如何做到的:

using IronOcr;
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    Input.AddPdf("scan.pdf")
    // clean up twisted pages
    Input.Deskew();
    var Result = Ocr.Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    Input.AddPdf("scan.pdf")
    // clean up twisted pages
    Input.Deskew();
    var Result = Ocr.Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr
Private Ocr = New IronTesseract()
Using Input = New OcrInput()
	Input.AddPdf("scan.pdf") Input.Deskew()
	Dim Result = Ocr.Read(Input)
	Result.SaveAsSearchablePdf("searchable.pdf")
End Using
VB   C#

授權

IronOCR 是免費提供開發使用。您可以免費使用其所有功能。IronOCR 還提供一個 免費試用 在无需任何支付的情况下用于生产。Iron Software 還提供了一個受欢迎的優惠——五款軟體產品的套裝價格僅相當於兩款的價格。只需一次性支付兩款軟體產品的費用,即可獲得包括 IronPDF 和 IronXL 在內的全部五款產品。您可以在這裡找到更多資訊 連結 關於授權。