跳至頁尾內容

開始使用 Azure 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);
}
NuGet Download
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;
                }
            }
        }
    }
}
NuGet Download
Install-Package IronOcr

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

  • <編碼>頁面</編碼
  • 段落
  • 文本行
  • Word
  • 個人特色
  • <編碼>Barcode</編碼

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

Human Support related to Azure OCR API

來自我們開發團隊的直接人工支援

無論是產品、整合或授權方面的問題,Iron 產品開發團隊都隨時準備為您解答。聯絡我們,與 Iron 展開對話,充分利用我們的庫資源,協助您的專案取得成功。

提問
Image To Text related to Azure OCR API

.NET 中適用於 Azure 的 OCR 閱讀引擎

處理不完美影像的首選 Microsoft Azure OCR 解決方案

無論是護照頁、發票、銀行對帳單、郵件、名片或收據,光學字元辨識 (OCR) 都是一個基於模式識別、電腦視覺和機器學習的研究領域。企業跨部門利用 OCR 技術提取會計和財務系統、業務數位化、企業內容管理和數據報告系統中的文字。

除了創造其他成功案例之外,IronOCR 還透過其原生 C# OCR 庫 IronOCR 為 Google Tesseract 和 Microsoft 2021 Azure 認知服務增添價值。

如果您希望以 99% 的準確率轉換真實世界的圖片,那麼請繼續閱讀,了解 IronOCR 如何幫助您建立高效、準確、可擴展且幾乎與人類一樣的光學字元辨識應用程式。

IronOCR 是市場競爭者和市場領導者之間的光學字元辨識差異化優勢

由於各種應用程式介面 (API) 聲稱具有極高的安全保障,光學字元辨識 (OCR) 被認為是一個成熟的技術。然而,各種產品往往不夠完善且不夠精確,在實際應用上經常失效。同樣,Tesseract OCR 也僅適用於機器列印的高解析度完美文字。

聽起來不錯?

現實世界並非總是擁有完美無瑕、高解析度的印刷體和手寫文字。 IronOCR 可以有效解決旋轉、傾斜、低 DPI、背景雜訊以及所有數位缺陷的困擾,包括從影像檔案中提取手寫文字。我們確保產生準確率高達 99.8% 至 100% 的可搜尋文檔,並支援跨平台,包括 Windows、Linux、macOS、Microsoft Azure、AWS 和 Docker。 C# 開發人員選擇IronOCR而非(基礎的)Tesseract OCR 是有原因的-一切都為了創造價值。

裝備最好的!

除了上述功能外,IronOCR 還可讓您快速處理影像文件。不僅如此,IronOCR API 的功能還包括以下幾個面向:

  • 利用光學字元辨識技術 (OCR) 從幾乎任何文件、圖像或 PDF 中提取印刷文本,精度極高,速度極快。
  • 將文字、PDF 和圖片提取到可搜尋的文件中,並完美地呈現視覺和空間效果。
  • 不需要執行檔或 C++ 程式碼
  • 完整的 PDF OCR 支持
  • 相容於 MVC、WebApp、桌面、控制台和伺服器應用程式。
  • 完全支援 .NET Core、Standard 和 Framework
  • 使用 C# 和 VB.NET 讀取
  • 將 OCR 轉換為 XHTML
  • 支援多執行緒
  • 支援 125 種國際語言-提供即用型語言包和自訂語言包
  • 提取圖像、座標、統計資料、字體等等
  • 在商業和專有應用程式中重新分發 Tesseract OCR
  • 本地運行,無需SaaS服務
  • 微軟認知服務提供的 OCR 服務的絕佳替代方案

功能幾乎無限——IronOCR 是數位工作空間中首屈一指的光學字元辨識 (OCR) 工具。

從原生 .dll 或 .exe 安裝過渡到單一資料來源-使用單一的原生 .NET 元件庫進行開發,該元件庫採用簡單的 C# API,支援:

  • .NET Framework 4.5 及更高版本
  • .NET Standard 2.0 以上版本(包括 3.x 和 .NET 5 Beta)
  • .NET Core 2.0 及更高版本(包括 3.x 和 .NET 5 Beta)
  • .NET 5
  • 適用於 macOS 的 Xamarin

IronOCR API 的強大之處遠不止於此;您可以繼續探索我們更先進的技術特性。我們透過開發可靠的解決方案,逐步降低業務複雜性,簡化文件處理應用程序,並透過提供業界領先的嵌入式功能,最大限度地提高業務收入:

  • 純 .NET OCR API 功能
  • 本地OCR操作,無需雲端,安全性更高
  • 建立最佳化的低品質、雜訊大、失真的掃描資源
  • 讀取PDF、多頁TIFF文件
  • 可以將任何 OCR 掃描樣本儲存為 PDF 文件或 XHTML 文檔,以供使用者搜尋。
  • 純文字、條碼資料以及包含段落、行、單字和字元的 OCR 結果類別。

IronOCR API Edge:滿足電腦視覺需求?

我們的光學字元辨識流程始於自動影像預處理,旨在增強影像文件,從而提高擷取回應率。 IronOCR 為您的工作增添價值,因為它使用戶能夠將範例基礎圖像檔案提取為最佳版本。 IronOCR 功能全面:

解析度增強

由於 IronOCR 服務在 300DPI(每英吋點數)影像檔案上效果最佳,因此任何明顯超出 200-300 DPI 的影像都會重新取樣以適應目標範圍。

這意味著將 600 DPI 影像下採樣到 300 DPI 或將 100 DPI 影像上採樣到 200 DPI,置信度為 99%。

二值化

由於 IronOCR 認知服務設計用於處理單色影像,因此任何彩色或灰階影像都會轉換為單色影像,並採用自適應二值化演算法。

此演算法比較區域內的像素密度,以確定用於將像素轉換為單色的閾值。

自動旋轉和去斜

IronOCR 會尋找文字行和字元模式,以自動校正輸入影像資源的傾斜並旋轉到所需的方向。

自適應雜訊消除

IronOCR 可自動分析影像檔案中是否有雜訊及其數量。雜訊本質上是掃描影像上的“斑點”。我們的自適應演算法會根據雜訊顆粒的大小來去除雜訊。

樣本影像檔案預處理完成後,IronOCR 會將輸入影像檔案分成不同的處理區域。

分區規劃

另一個預處理階段是將參考影像分割成不同的邏輯區域。 IronOCR 首先以空白和圖案定位影像中的文字和圖片;然後將文字區域與影像區域分開。

然後,文字被分割成段落、列和文字區塊等區域。圖像和剩餘的非文字像素會被識別出來,在文字辨識過程中被忽略,並包含在智慧輸出中。 IronOCR 隨後透過網格線和文字區塊將文字區域標記為表格。

文字辨識能力

執行多個相互關聯的步驟,將像素區塊轉換為使用者可以搜尋的單行文字。這包括字元分割、自適應分類、字典檢索以及其他有助於提取最佳文本的相關過程。

經過驗證的多個參數

借助 IronOCR API 服務,我們已使用多種語言的多個資料檔案範例對我們的工具進行了測試,測試內容包括單字層級、符號準確度和 Microsoft Office 格式的佈局保留。雖然某些參數會自動測試,但其他參數則需要人工檢查。

聯絡 IronOCR——理想的 OCR 認知服務解決方案

IronOCR 可讓您為純文字字串新增跨平台 OCR 功能,支援多種輸入格式,方便您進行搜尋。為了提升您的 IronOCR 使用效率,請先閱讀我們的免費教學文檔,它將指導您如何使用 IronOCR。立即下載我們的 NuGet 套件安裝程序,使用免費試用金鑰進行體驗,或聯絡我們的全天候專屬支援團隊。無論您的團隊規模如何,我們都提供終身許可,滿足您的各種需求。

。網, VB.NET, C#

查看許可證
支持:
  • .NET Framework 4.0 及更高版本支援 C#、VB 和 F#
  • Microsoft Visual Studio .NET 開發 IDE 圖示
  • Visual Studio 的 NuGet 安裝程式支持
  • 相容於 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 函式庫許可

原廠設備製造商

查看完整授權選項  

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

.NET Tesseract 替代方案 | IronOCR

C# 超立方體 OCR

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

IronOCR 和 Tesseract 在 .NET 中的比較

Jim一直是IronOCR開發過程中的主要人物。他負責設計和建構用於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 Enterprise .NET 元件開發人員

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

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

通用電氣
Equinor
澳新銀行
奇蹟
佛利
尼胡杜斯
維雷克
Medcode