跳過到頁腳內容

開始使用 .NET OCR 範例

C# + VB.NET: AutoOcr AutoOcr
using IronOcr;

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

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

IronOCR 的獨特之處在於它能夠自動偵測和讀取掃描不完美的影像和 PDF 文件中的文字。 IronTesseract類別提供了最簡單的 API。

嘗試其他程式碼範例,以獲得對 C# OCR 操作的更精細控制。

IronOCR 提供目前已知最先進的 Tesseract 版本,可在任何平台上運行,速度更快、精度更高,並具有原生 DLL 和 API。

支援適用於 .NET Framework、Standard、Core、Xamarin 和 Mono 的 Tesseract 3、Tesseract 4 和 Tesseract 5。

探索 IronTesseract C# OCR 使用指南

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
Install-Package IronOcr

IronOCR 語言支持

IronOCR 支援 125 種國際語言。 除了預設安裝的英文之外,還可以透過 NuGet 將其他語言套件新增至您的 .NET 專案中,或從我們的語言頁面下載其他語言套件。

大多數語言都提供快速、標準(建議)和最佳品質三種版本。 最佳品質選項可能提供更準確的結果,但處理時間也會更慢。

使用 IronOCR 探索多種語言的 OCR 技術。

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
Install-Package IronOcr

IronOCR 使用 Tesseract 5 掃描每一頁,並傳回一個進階結果物件。 這包含位置資料、圖像、文字、統計置信度、替代符號、字體名稱、字號裝飾、字體粗細以及每個元素的位置

  • 段落
  • 文字行
  • 單字 個人特質 條碼

探索如何使用 IronOCR 讀取 OCR 結果

Human Support related to .NET Core 中的 OCR

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

無論是產品、整合或 License 方面的疑問,Iron 產品開發團隊都能隨時支援您的所有問題。請與 Iron 聯絡並展開對話,讓我們的函式庫在您的專案中發揮最大效用。

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

光學字元識別 (OCR) 讀取引擎 - 在 OCR .NET SDK 中將影像轉換為文字

IronOCR (Optical Character Recognition,光學字元識別) 函式庫可讓開發人員在將圖像轉換為文字時,快速且有效率地得到結果。IronOCR 適用於 .NET、VB .NET 和 C#。我們的頂級 .NET 應用程式適用於 .NET Framework,專門為您 - 開發人員設計,支援您的專案達到最佳效能。

OCR 可接收並辨識文字檔、Barcode、QR 內容等。不過,IronOCR 也提供許多方法,讓您可以將圖像的 OCR 讀取和文字加入網頁、windows 桌面或控制台的 .NET 專案中,並支援幾乎無限制的圖像格式和檔案,例如 JPG、PNG、GIF、TIFF、BMP、JPEG 或 PDF。

Under the Hood - 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 需求,它具有廣泛的支援語言。無論是阿拉伯文、西班牙文、法文、德文、希伯來文、義大利文、日文、簡體中文、繁體中文 (國語)、丹麥文、英文、芬蘭文、葡萄牙文、俄文、西班牙文或瑞典文,您只要說出語言的名稱,我們就會為您提供!您可以下載您偏好的 語言包,或聯絡我們的 24/7 支援以取得更多的語言。

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

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

準確讀取不完整掃描的影像處理

IronOCR 與競爭對手有何不同?除了可讓您輕鬆新增 OCR 功能、擷取文字和掃描旋轉的影像之外,它還具有從不完美的掃描中執行 OCR 的能力!

IronOCR 利用其强大的 IronTesseract DLL 扩展了 Google Tesseract 的功能 - 这是一个本地 C# OCR 库,与免费的 Tesseract 库相比,具有更高的稳定性和准确性。

無後顧之憂地繼續前進 - IronOCR 為您提供保障!

有了手中的最佳工具,即使您的掃描影像不夠完美,或是儲存資料夾中的儲存影像 - IronOCR 的影像處理函式庫轉換都能清除雜訊、旋轉、減少扭曲和歪斜排列,並提高解析度和對比度。先進的光學字元識別 (OCR) 設定為您 - 編碼人員 - 提供工具和程式碼,讓您一次又一次地產生最佳的可搜尋結果。

搜尋所需的字詞,絕不會讓您失望 99.8-100% 準確度的結果,以及對 PDF 文件、multiFrame 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 framework 中的其他 .NET 應用程式不同,您會發現在 IronOCR 的套件管理員控制台和識別文字控制台中,先進的光學字元識別功能讓您的使用者能夠從整張圖片或掃描的影像中讀取多種文字字型 (從 Times New Roman 到任何花俏或據說難以理解的字型)、重量和樣式,以進行精確的文字讀取。我們能夠選擇影像的特定區域,有助於提高速度和精確度。從幾行到幾個段落的多執行緒可加快 OCR 引擎的速度,並允許在多核心機器上讀取多個文件。

從頭到尾的效能支援

我們對速度和精確度的要求並不限於字元識別的過程。相反,由于 IronOCR for .NET OCR 引擎是一个易于安装、完整且文档齐全的 .NET 软件库,因此其改进从安装点就开始了。有一個適用於 Visual Studio 的單一 NuGet 套件管理程式安裝,以及 MVC、WebApp、Desktop、Console 和 Server 應用程式的多執行緒相容性。

您可以達到 99.8-100% 的 OCR 精確度,而不需要任何外部網路服務、持續的費用,或必須透過網際網路傳送機密文件。

我們為追求完美編碼的開發人員提供了最佳選擇,因為 IronOCR 開箱即用,無需進行性能調整或大量修改輸入圖像。最新的 IronOCR 版本運作速度驚人 - 快達 10 倍,而且錯誤比之前的版本減少超過 250%。我們升級自己的建置,提供完美的 OCR 平台,以支援您的目標!

查看完整功能清單
Output Content related to .NET Core 中的 OCR

直接匯出 OCR 結果資料至您的應用程式

即使在使用行動裝置時,我們完美的 .NET OCR 函式庫也能讓開發人員「無後顧之憂」地編碼,因為 IronOCR 支援將內容匯出為一組簡單的直接和複雜文字、機器編碼文字、條碼資料或結構化物件模型資料。

可輕鬆匯出至您的目標應用程式和格式 - XHTML、可搜尋文件、HOCR 和 HTML

從原始程式碼到最終結果 - 如果您無法將產生的資料匯出至您的應用程式,這些資料將毫無用處。IronOCR 了解这一点,并允许您将 OCR 结果导出为 XHTML,以便能够在更广泛的应用程序中使用可持续的格式,并与复杂的网站集成,更不用说更快的加载时间了!

然而,支持并不止于此。將 OCR 輸出至可搜尋的 PDF 文件的功能,可讓您、您的客戶和組織在需要時輕鬆儲存和檢索 PDF 文件!當您有一份長達 30 頁的合約,您只需輸入幾個關鍵字就能在資料庫中搜尋到,這對您尤其有利;此外,鑑於可搜尋的 PDF 文件已證實對視障人士有益,這也讓您能夠以合乎規範的方式呈現貴公司。

除了上述功能之外,您還可以將結果匯出為 OCR 格式,代表您的 OCR 輸出、版面資訊和樣式資訊,並將相關資訊嵌入標準的 HTML 中。

此外,您還可以將 OCR 結果匯出為 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 函式庫授權

組織架構

Agency C# + VB.NET Library Licensing

代理機構

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

SaaS

OEM C# + VB.NET 函式庫授權

OEM

檢視完整授權選項  

來自 .NET 社群的 OCR 教學

.NET Tesseract OCR | IronOCR for .NET

C# Tesseract OCR

Jim Baker 是 Iron 的開發工程師,負責開發 OCR 產品。

IronOCR 與 Tesseract 在 .NET 中的比較

Jim 一直是 IronOCR 開發的領導人物。 Jim 設計並建立 OCR 的影像處理演算法與讀取方法。

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

C# OCR ASP.NET

Gemma Beckford - 微軟解決方案工程師

來自 .NET 影像的文字

瞭解 Gemma 的團隊如何使用 IronOCR 來為他們的歸檔軟體讀取影像中的文字。Gemma 分享她自己的程式碼範例。

圖片轉換為文字的 .NET 教學
數以千計的開發人員使用 IronOcr 來...

會計與財務系統

  • # 收據
  • # 報告
  • # 發票列印
為 ASP.NET 會計與財務系統新增 PDF 支援

商業數位化

  • # 文件
  • # 訂購與標籤
  • # 紙張替換
C# 業務數位化使用案例

企業內容管理

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

資料與報告應用程式

  • # 效能追蹤
  • # 趨勢繪圖
  • # 報告
C# PDF 報告
Iron Software 企業 .NET 元件開發人員

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

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

澳大利亞新西蘭
Equinor
Vireq
Foley
Marval
Medcode
GE
Nexudus