Chinese OCR in C# and .NET

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

下載

我們可以從以下鏈接下載中文語言包 [中文 (Zhōngwén)]:

在中文語言中使用IronOCR

創建或打開一個C#項目

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

  • 打開Visual Studio 2022。
  • 點擊"創建新項目"按鈕。

圖片1

  • 在搜索欄中輸入"Windows",從搜尋結果中選擇"Windows Form"應用程序,然後點擊"下一步"按鈕。

圖片2

  • 為項目命名。 我將項目命名為"ChineseOCR"。 命名後,點擊"下一步"按鈕。

圖片3

  • 在下一個屏幕中選擇.NET框架。 根據項目需求選擇.NET框架。 我們在本教程中選擇.NET 5.0版本。

圖片4

  • 選擇後,點擊"創建"按鈕。 它將在Visual Studio中創建C# Windows Form項目。

項目已創建,現在可以使用IronOCR庫。 您也可以使用現有的C#項目。 打開項目並繼續安裝IronOCR庫。 以下部分說明如何在C#項目中安裝IronOCR庫。

安裝

使用NuGet包管理器

要安裝IronOCR庫,我們必須打開NuGet Package Manager接口。 按照以下步驟安裝IronOCR庫:

  • 在主菜單中點擊"工具",懸停於"NuGet包管理器",然後選擇"為解決方案管理NuGet包"。

圖片5

  • 這將打開NuGet包管理器界面。 轉到"瀏覽"選項卡,並搜索IronOCR Chinese。 從搜索結果中選擇正確的包,然後點擊"安裝"按鈕安裝它。

圖片6

  • 庫的安裝將開始。 安裝後,您將能夠在項目中使用IronOCR庫。

使用包管理器控制台

使用控制台總是一個簡單的選擇。 我們也可以使用包管理器控制台安裝IronOCR庫。 按照以下步驟安裝IronOCR庫:

  • 在Visual Studio中打開包管理器控制台。 它通常位於Visual Studio的底部。
  • 在控制台中執行以下命令:

    Install-Package IronOcr.Languages.Chinese
  • 您將在控制台中看到庫的安裝進度。 它將 自動安裝這個函式庫。 安裝後,項目將為IronOCR庫準備就緒。

代碼示例:中文語言的OCR

現在,是時候編寫代碼來實施中文語言的IronOCR庫。 首先,我們需要開發一個前端來選擇圖像文件。讓我們看看如何做到這一點。

開發前端

我們將使用"工具箱"元素來設計前端。 我們將創建一個按鈕、一個圖片框、一個富文本框和兩個標簽。 我們將從工具箱中拖放這些元素到Windows Form上。 根據需要安排這些元素。

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

圖片7

當您運行項目時,這個窗口將彈出。 我們設置了Windows Form的對齊方式,使其顯示在螢幕中央。

我們的前端已準備就緒。 現在,讓我們將後端功能添加到按鈕上。

IronOCR的後端代碼

首先,導入IronOCR命名空間,以便在代碼中使用它,請在文件頂部寫下以下內容:

using IronOCR;
using IronOCR;
Imports IronOCR
$vbLabelText   $csharpLabel

我們將使用"選擇圖像"按鈕選擇並加載圖像到圖片框。 IronOCR將處理中文簡體文本圖像並在富文本框中顯示輸出文本。 讓我們通過雙擊按鈕並編寫以下代碼來為按鈕添加功能:

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();

        // Set OCR language to Chinese Traditional
        Ocr.Language = OcrLanguage.ChineseTraditional;

        using (var Input = new OcrInput(open.FileName))
        {
            // Perform OCR on the image input
            var Result = Ocr.Read(Input);

            // Output the recognized text
            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();

        // Set OCR language to Chinese Traditional
        Ocr.Language = OcrLanguage.ChineseTraditional;

        using (var Input = new OcrInput(open.FileName))
        {
            // Perform OCR on the image input
            var Result = Ocr.Read(Input);

            // Output the recognized text
            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()

		' Set OCR language to Chinese Traditional
		Ocr.Language = OcrLanguage.ChineseTraditional

		Using Input = New OcrInput(open.FileName)
			' Perform OCR on the image input
			Dim Result = Ocr.Read(Input)

			' Output the recognized text
			txt_output.Text = Result.Text
		End Using
	End If
End Sub
$vbLabelText   $csharpLabel

當用戶單擊按鈕時,將彈出一個對話框以選擇圖像。 當用戶選擇圖像後,它將自動加載到圖片框中。 我們使用Bitmap在圖片框中顯示圖像。 之後,IronOCR將圖像轉換為中文文本。 我們將OCR語言設置為中文繁體以識別繁體中文文本。 Ocr.Read函數處理並將OCR結果儲存在Result變量中。 如果有必要,您可以使用SaveAs功能,以PDF、文本或HTML格式保存文本,從而以IronOCR支持的各種輸出格式保存文件。

運行項目

現在是時候運行項目了。 在Visual Studio中點擊運行按鈕。 您應該看到這個屏幕:

圖片8

單擊"選擇圖像"按鈕。 它將打開選擇文件對話框。 選擇一個圖像文件並按下回車。

圖片9

它將圖像加載到圖片框中,自動掃描並在文本框中顯示輸出。

圖片10

這是我們選擇的圖像的輸出。 IronOCR還支持PDF文件的讀取和掃描。 您可以使用PDF文件的可編輯格式,使用IronOCR掃描和識別文本,這可以使用不同的語言完成。 IronOCR還可以使現存的PDF文件成為可搜索的PDF。 它採用了多種圖像過濾器來提高圖像的清晰度。 以下是一些過濾器:

  • Input.Binarize()
  • Input.Contrast()
  • Input.Deskew()
  • Input.DeNoise()
  • Input.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")
	' Clean up twisted pages
	Input.Deskew()
	Dim Result = Ocr.Read(Input)
	Result.SaveAsSearchablePdf("searchable.pdf")
End Using
$vbLabelText   $csharpLabel

許可

IronOCR 可免費開發使用。 您可以免費地積極使用其所有功能。 IronOCR還提供免費試用生產,不需要支付。 Iron Software提供了一個受歡迎的交易——五個軟件產品的套件只需支付兩個產品的價格。 只需一次支付兩個軟件產品的費用,即可獲得包括IronPDF和IronXL在內的所有五個產品。 您可以在這裡找到有關許可的信息。