C# + VB.NET: 自動光學字符識別 自動光學字符識別
using IronOcr;

string imageText = new IronTesseract().Read(@"images\image.png").Text;
Imports IronOcr

Private imageText As String = (New IronTesseract()).Read("images\image.png").Text

IronOCR 能夠自動檢測並讀取來自掃描不完美的圖片和 PDF 文件中的文字,這點是獨特的。 IronTesseract 類提供了最簡單的 API。

嘗試其他代碼示例以獲得對您的C# OCR操作的細粒度控制。

IronOCR 提供了目前任何平台上已知的最先進的 Tesseract 構建。 具有提高的速度、準確性以及原生的 DLL 和 API。

支持 Tesseract 3、Tesseract 4 和 Tesseract 5 的 .NET Framework、Standard、Core、Xamarin 和 Mono。

C# + VB.NET: 國際語言 國際語言
using IronOcr;
using System;

var ocrTesseract = new IronTesseract();

ocrTesseract.Language = OcrLanguage.Arabic;

using (var ocrInput = new OcrInput())
{
    ocrInput.LoadImage(@"images\arabic.gif");
    var ocrResult = ocrTesseract.Read(ocrInput);
    Console.WriteLine(ocrResult.Text);
}

// Example with a Custom Trained Font Being used:

var ocrTesseractCustomerLang = new IronTesseract();
ocrTesseractCustomerLang.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata");
ocrTesseractCustomerLang.AddSecondaryLanguage(OcrLanguage.EnglishBest);

using (var ocrInput = new OcrInput())
{
    ocrInput.LoadPdf(@"images\mixed-lang.pdf");
    var ocrResult = ocrTesseractCustomerLang.Read(ocrInput);
    Console.WriteLine(ocrResult.Text);
}
Imports IronOcr
Imports System

Private ocrTesseract = New IronTesseract()

ocrTesseract.Language = OcrLanguage.Arabic

Using ocrInput As New OcrInput()
	ocrInput.LoadImage("images\arabic.gif")
	Dim ocrResult = ocrTesseract.Read(ocrInput)
	Console.WriteLine(ocrResult.Text)
End Using

' Example with a Custom Trained Font Being used:

Dim ocrTesseractCustomerLang = New IronTesseract()
ocrTesseractCustomerLang.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata")
ocrTesseractCustomerLang.AddSecondaryLanguage(OcrLanguage.EnglishBest)

Using ocrInput As New OcrInput()
	ocrInput.LoadPdf("images\mixed-lang.pdf")
	Dim ocrResult = ocrTesseractCustomerLang.Read(ocrInput)
	Console.WriteLine(ocrResult.Text)
End Using

IronOCR 支援 125 種國際語言。

除了預設安裝的英語之外,還可以通過 NuGet 或從我們的網站下載添加到您的 .NET 項目的語言包。語言頁面.

大多數語言都提供快速和標準版本。(推薦)及最佳品質。 更準確的可能會更慢。

C# + VB.NET: 結果對象 結果對象
using IronOcr;
using IronSoftware.Drawing;

// We can delve deep into OCR results as an object model of
// Pages, Barcodes, Paragraphs, Lines, Words and Characters
// This allows us to explore, export and draw OCR content using other APIs/
var ocrTesseract = new IronTesseract();

ocrTesseract.Configuration.ReadBarCodes = true;

using var ocrInput = new OcrInput();
var pages = new int[] { 1, 2 };
ocrInput.LoadImageFrames("example.tiff", pages);

OcrResult ocrResult = ocrTesseract.Read(ocrInput);
foreach (var page in ocrResult.Pages)
{
    // Page object
    int PageNumber = page.PageNumber;
    string PageText = page.Text;
    int PageWordCount = page.WordCount;
    // null if we dont set Ocr.Configuration.ReadBarCodes = true;
    OcrResult.Barcode[] Barcodes = page.Barcodes;
    AnyBitmap PageImage = page.ToBitmap(ocrInput);
    double PageWidth = page.Width;
    double PageHeight = page.Height;
    double PageRotation = page.Rotation; // angular correction in degrees from OcrInput.Deskew()

    foreach (var paragraph in page.Paragraphs)
    {
        // Pages -> Paragraphs
        int ParagraphNumber = paragraph.ParagraphNumber;
        string ParagraphText = paragraph.Text;
        AnyBitmap ParagraphImage = paragraph.ToBitmap(ocrInput);
        int ParagraphX_location = paragraph.X;
        int ParagraphY_location = paragraph.Y;
        int ParagraphWidth = paragraph.Width;
        int ParagraphHeight = paragraph.Height;
        double ParagraphOcrAccuracy = paragraph.Confidence;
        OcrResult.TextFlow paragrapthText_direction = paragraph.TextDirection;
        foreach (var line in paragraph.Lines)
        {
            // Pages -> Paragraphs -> Lines
            int LineNumber = line.LineNumber;
            string LineText = line.Text;
            AnyBitmap LineImage = line.ToBitmap(ocrInput);
            int LineX_location = line.X;
            int LineY_location = line.Y;
            int LineWidth = line.Width;
            int LineHeight = line.Height;
            double LineOcrAccuracy = line.Confidence;
            double LineSkew = line.BaselineAngle;
            double LineOffset = line.BaselineOffset;
            foreach (var word in line.Words)
            {
                // Pages -> Paragraphs -> Lines -> Words
                int WordNumber = word.WordNumber;
                string WordText = word.Text;
                AnyBitmap WordImage = word.ToBitmap(ocrInput);
                int WordX_location = word.X;
                int WordY_location = word.Y;
                int WordWidth = word.Width;
                int WordHeight = word.Height;
                double WordOcrAccuracy = word.Confidence;
                foreach (var character in word.Characters)
                {
                    // Pages -> Paragraphs -> Lines -> Words -> Characters
                    int CharacterNumber = character.CharacterNumber;
                    string CharacterText = character.Text;
                    AnyBitmap CharacterImage = character.ToBitmap(ocrInput);
                    int CharacterX_location = character.X;
                    int CharacterY_location = character.Y;
                    int CharacterWidth = character.Width;
                    int CharacterHeight = character.Height;
                    double CharacterOcrAccuracy = character.Confidence;
                    // Output alternative symbols choices and their probability.
                    // Very useful for spellchecking
                    OcrResult.Choice[] Choices = character.Choices;
                }
            }
        }
    }
}
Imports IronOcr
Imports IronSoftware.Drawing

' We can delve deep into OCR results as an object model of
' Pages, Barcodes, Paragraphs, Lines, Words and Characters
' This allows us to explore, export and draw OCR content using other APIs/
Private ocrTesseract = New IronTesseract()

ocrTesseract.Configuration.ReadBarCodes = True

Dim ocrInput As New OcrInput()
Dim pages = New Integer() { 1, 2 }
ocrInput.LoadImageFrames("example.tiff", pages)

Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
For Each page In ocrResult.Pages
	' Page object
	Dim PageNumber As Integer = page.PageNumber
	Dim PageText As String = page.Text
	Dim PageWordCount As Integer = page.WordCount
	' null if we dont set Ocr.Configuration.ReadBarCodes = true;
	Dim Barcodes() As OcrResult.Barcode = page.Barcodes
	Dim PageImage As AnyBitmap = page.ToBitmap(ocrInput)
	Dim PageWidth As Double = page.Width
	Dim PageHeight As Double = page.Height
	Dim PageRotation As Double = page.Rotation ' angular correction in degrees from OcrInput.Deskew()

	For Each paragraph In page.Paragraphs
		' Pages -> Paragraphs
		Dim ParagraphNumber As Integer = paragraph.ParagraphNumber
		Dim ParagraphText As String = paragraph.Text
		Dim ParagraphImage As AnyBitmap = paragraph.ToBitmap(ocrInput)
		Dim ParagraphX_location As Integer = paragraph.X
		Dim ParagraphY_location As Integer = paragraph.Y
		Dim ParagraphWidth As Integer = paragraph.Width
		Dim ParagraphHeight As Integer = paragraph.Height
		Dim ParagraphOcrAccuracy As Double = paragraph.Confidence
		Dim paragrapthText_direction As OcrResult.TextFlow = paragraph.TextDirection
		For Each line In paragraph.Lines
			' Pages -> Paragraphs -> Lines
			Dim LineNumber As Integer = line.LineNumber
			Dim LineText As String = line.Text
			Dim LineImage As AnyBitmap = line.ToBitmap(ocrInput)
			Dim LineX_location As Integer = line.X
			Dim LineY_location As Integer = line.Y
			Dim LineWidth As Integer = line.Width
			Dim LineHeight As Integer = line.Height
			Dim LineOcrAccuracy As Double = line.Confidence
			Dim LineSkew As Double = line.BaselineAngle
			Dim LineOffset As Double = line.BaselineOffset
			For Each word In line.Words
				' Pages -> Paragraphs -> Lines -> Words
				Dim WordNumber As Integer = word.WordNumber
				Dim WordText As String = word.Text
				Dim WordImage As AnyBitmap = word.ToBitmap(ocrInput)
				Dim WordX_location As Integer = word.X
				Dim WordY_location As Integer = word.Y
				Dim WordWidth As Integer = word.Width
				Dim WordHeight As Integer = word.Height
				Dim WordOcrAccuracy As Double = word.Confidence
				For Each character In word.Characters
					' Pages -> Paragraphs -> Lines -> Words -> Characters
					Dim CharacterNumber As Integer = character.CharacterNumber
					Dim CharacterText As String = character.Text
					Dim CharacterImage As AnyBitmap = character.ToBitmap(ocrInput)
					Dim CharacterX_location As Integer = character.X
					Dim CharacterY_location As Integer = character.Y
					Dim CharacterWidth As Integer = character.Width
					Dim CharacterHeight As Integer = character.Height
					Dim CharacterOcrAccuracy As Double = character.Confidence
					' Output alternative symbols choices and their probability.
					' Very useful for spellchecking
					Dim Choices() As OcrResult.Choice = character.Choices
				Next character
			Next word
		Next line
	Next paragraph
Next page

IronOCR 使用 Tesseract 5 掃描每個頁面時,會返回一個進階的結果物件。 此包含每個項目的位置數據、圖像、文本、統計信心、替代符號選擇、字體名稱、字體大小裝飾、字體粗細和位置

  • 頁面
  • 段落
  • 行文字
  • Word
  • 個別字符
  • 和條碼

Human Support related to 在 .NET Core 中的 OCR

由我們開發團隊提供的人力支援

無論是產品、整合或授權問題,Iron 產品開發團隊都隨時為您解答所有問題。請聯絡我們並開始與 Iron 對話,在您的項目中充分利用我們的庫。

提出問題
Image To Text related to 在 .NET Core 中的 OCR

光學字符識別 (OCR) 讀取引擎 — 圖像轉文字於 OCR .NET SDK

IronOCR(光學字符識別)庫使開發人員在將圖像轉換為文本時能夠快速且高效地獲得結果。IronOCR 適用於 .NET、VB .NET 和 C#。我們是針對 .NET 框架設計的頂級 .NET 應用程序,專門為您——開發人員設計,以支持您在項目中實現最佳性能。

OCR 接收並識別文本文件、條碼、QR 內容等內容。然而,IronOCR 還提供了多種方法,允許您將 OCR 閱讀和文本從圖像添加到網頁、Windows 桌面或控制台 .NET 項目中,支持幾乎無限的圖像格式和文件,例如 JPG、PNG、GIF、TIFF、BMP、JPEG 或 PDF。

深入瞭解 - IronOCR 提供完美結果

雖然從圖像輸出識別純文本、字符、行和段落的結果可能看起來並不簡單,但您會發現 IronOCR 背後的結果實際上比您最初想像的要簡單。IronOCR 掃描圖像進行對齊,使用其去噪和過濾器檢查質量和分辨率。它會檢查其屬性,優化 OCR 引擎,並使用訓練有素的人工智能網絡來識別文本(從圖像)以及任何人類。

即使對於計算機來說,OCR 也不是一個簡單的過程。然而,IronOCR 使創建可搜索文檔的整體過程變得更快、更簡單,具有 100% 的準確性和最少的代碼行。

與...相容 .NET, VB.NET, C#

閱讀教程
Support For Languages related to 在 .NET Core 中的 OCR

支援多國語言

軟體不受地理界限的限制 — 企業橫跨邊界運作,並依賴多種語言來實現其結果。同樣地,僅能辨識單一語言文件的光學字元辨識(OCR)工具,無論從哪裡看都是一個大大的不,無法接受!

多語言OCR支援對您有什麼意義?

使用提供多種OCR功能的多語言OCR庫,您將受惠於從掃描的PDF或掃描圖像中創建多語言的可搜尋PDF文件(從法文到中文!)。您的時間和精力將被動態化地簡化為一個可搜尋文字的PDF文件,您、您的客戶或您的組織可以無限次地使用和重用。

IronOCR庫強調以您、您的業務以及您的OCR需求為核心,無論是內建還是因要求建立,它支持廣泛的語言。您下一個.NET專案將不再需要擔心語言相容性問題!

無論是阿拉伯語、西班牙語、法語、德語、希伯來語、義大利語、日語、簡體中文、繁體中文(國語)、丹麥語、英語、芬蘭語、葡萄牙語、俄語、西班牙語或瑞典語,只需具名語言,我們即可為您提供!您可以下載您偏好的語言包或聯繫我們的24/7支援來獲取更多語言。

第一步是使用我們的NuGet套件安裝程式來為Windows Visual Studio安裝。

下載語言包
Advanced Image related to 在 .NET Core 中的 OCR

影像處理以精確讀取不完善掃描件

IronOCR 如何與競爭對手區別開來?除了能輕鬆添加 OCR 功能、提取文本和掃描旋轉圖片外,它還具備從不完美掃描中執行 OCR 的能力!相比之下,如今市場上的許多現成產品通常僵化且不準確,注定在真實世界中的個人和企業應用中失敗,因為其中大多數只能處理機器打印的、高分辨率且完美調整的文本。

IronOCR 通過其強大的 IronTesseract DLL 擴展了 Google Tesseract 的功能—這是一個本地 C# OCR 庫,與免費的 Tesseract 庫相比,穩定性更高且準確性更高。

無擔憂前進—I bạn們。一oOCR為您全面保護!

擁有最佳工具在手,即使您擁有不到完美的掃描圖像或存儲在存儲文件夾中的圖像,IronOCR 的圖像處理庫轉換會清理噪音、旋轉、減少失真和傾斜調整,並提高分辨率和對比度。進階的光學字符識別(OCR)設置為您—開發者—提供工具和代碼,以一次又一次地生成最佳可能的可搜索結果。

尋找您所需的詞彙,且永不會對99.8-100%的準確結果失望,並對PDF檔案、多幀TIFF檔案、JPEG及JPEG2000、GIF、PNG、BMP、WBMP、System.Drawing.Image、System.Drawing.Bitmap、System.IO.Streams的圖像、二進制圖像數據(byte[])等提供無限的支持!

Tesseract 的替代方案
Fast And Polite Behavior related to 在 .NET Core 中的 OCR

快速且準確 — 從掃描的 PDF 到掃描旋轉的圖像

與其他 .NET 框架中的 .NET 應用程式不同,您會發現 IronOCR 的套件管理器控制台和識別文字控制台中的高級光學字符識別功能為用戶提供了從整個圖像或掃描圖像中準確讀取多種字體(從 Times New Roman 到任何花俏或據說難以理解的字體)、字重和樣式的能力。我們選擇圖像某些區域的能力有助於提高速度和精確度。從幾行到幾段的多執行緒加快了 OCR 引擎的速度,並允許在多核機器上閱讀多個文件。

從頭到尾性能支持

我們對速度和精確度的聲明不限於字符識別過程。事實上,改進從安裝伊始就開始,因為 IronOCR 的 .NET OCR 引擎是一個易於安裝、完整且文檔齊全的 .NET 軟體庫。Visual Studio 的 NuGet 套件管理器安裝僅需一次操作,並與 MVC、WebApp、桌面、控制台和伺服器應用程式具有多執行緒相容性。

您不需任何外部網頁服務、持續費用或將機密文件傳送經網際網路即可達成 99.8-100% 的 OCR 精確度。沒有繁瑣的 C++ 編碼,IronOCR 在需要全面的 PDF OCR 支持以處理多字符、單詞、行、段落、文本和文件時,是明智的選擇。

我們為想要完善其編碼的開發人員提供最佳選擇,因為 IronOCR 即開即用,不需進行性能調整或大幅修改輸入圖像。最新的 IronOCR 版本運行速度令人驚嘆——速度提升至十倍,且錯誤率比以前版本少 250% 以上。我們升級了我們的版本以支持您的目標,提供完美的 OCR 平台!

查看完整功能列表
Output Content related to 在 .NET Core 中的 OCR

將 OCR 結果數據直接導出到您的應用程式

即使在使用行動裝置時,我們完美的 .NET OCR 套件庫使開發人員能夠「無憂無慮」地編碼,因為 IronOCR 支援將內容匯出為一組簡單的直接和複雜的文本、機器編碼文本、條碼數據或結構化對象模型數據。您可以將內容分割為段落、行、字詞、字符和圖像字串結果,以便在您的 .NET 應用中直接使用。

輕鬆匯出到您的目標應用程式和格式 — XHTML, 可搜尋文件, HOCR 和 HTML

從原始碼到最終結果 —如果不能匯出結果到您的應用程式,生成的數據將毫無用處。IronOCR 理解這一點,並允許您將 OCR 結果匯出為 XHTML,以便能夠在更廣泛的應用範圍內使用可持續的格式,並且能與複雜網站整合,更不用說較快的加載時間了!

然而,支持並不止於此。將 OCR 匯出為可搜尋的 PDF 文檔的能力,讓您、您的客戶和組織容易儲存和檢索 PDF 文檔!這尤其有利於當您擁有一份 30 頁的合約,您可以在數據庫中使用一些關鍵字進行搜尋時,還能讓您的公司展現出合規友好的形象,因為可搜尋的 PDF 文檔已證明對視障人士是有利的。

除了上述內容之外,您還可以將結果匯出為 OCR 格式,這一格式表示您的 OCR 輸出、佈局信息和樣式信息,並將相關信息嵌入標準 HTML 中。

了解更多
支持:
  • .NET Framework 4.0及以上版本支持C#、VB、F#
  • Microsoft Visual Studio. .NET 開發 IDE 圖標
  • NuGet 安裝程式支援 Visual Studio
  • JetBrains ReSharper C# 語言助理相容
  • Microsoft Azure C#.NET 託管平台相容

授權與定價

免費社區開發許可證。商業許可證起價$749。

項目C# + VB.NET庫授權

專案

開發人員C# + VB.NET 庫許可證

開發人員

組織 C# + VB.NET 庫授權

組織

代理機構 C# + VB.NET 庫許可

代理商

SaaS C# + VB.NET 程式庫授權

SaaS

OEM C# + VB.NET 庫許可證

OEM

查看完整授權選項  

來自我們 .NET 社群的 OCR 教程

.NET Tesseract OCR | IronOCR

C# Tesseract 光學字符識別

吉姆·貝克是 Iron 的一名開發工程師,負責開發 OCR 產品。

IronOCR 與 Tesseract 在 .NET 中的比較

Jim 一直是 IronOCR 開發方面的領導人物。Jim 設計並構建了影像處理算法及 OCR 閱讀方法。

查看比較
將文字轉換為圖片於 .NET | 教學

C# 光學字符識別 ASP.NET

傑瑪·貝克福德 - 微軟解決方案工程師

圖片文字轉換.NET

了解Gemma的團隊如何使用IronOCR從圖像中讀取文字,以用於他們的歸檔軟件。Gemma分享了她自己的程式碼範例。

影像轉文字 .NET 教程
數以千計的開發者使用 IronOCR 為了...

會計和金融系統

  • # 收據
  • # 報告
  • # 發票列印
為 ASP.NET 會計和財務系統添加 PDF 支持

企業數位化

  • # 文件資料
  • # 訂購與標籤
  • # 紙張替代
C# 業務數位化用例

企業內容管理

  • # 內容製作
  • # 文件管理
  • # 內容分發
.NET CMS PDF 支援

數據和報告應用程式

  • # 效能追蹤
  • # 趨勢映射
  • # 報告
C# PDF 報告
Iron Software 企業 .NET 組件開發者

成千上萬的企業、政府、中小企業和開發人員都信賴 Iron software 產品。

Iron 團隊在 .NET 軟體元件市場有超過 10 年的經驗。

Equinor
醫碼
馬瓦爾
福利
Nexudus
澳新銀行
通用電氣
Vireq