觀看David Jones, Agorus, 使用Iron Suite創造新效能
觀看Milan Jovanović使用IronPDF
觀看我們的團隊產品演示
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。
IronOCR
IronTesseract
嘗試其他程式碼範例,以獲得對 C# OCR 操作的更精細控制。
IronOCR 在任何地方、任何平台上提供已知最先進的 Tesseract 建置,具有更高的速度、準確性以及本機 DLL 和 API。
Tesseract
支援適用於 .NET Framework、Standard、Core、Xamarin 和 Mono 的 Tesseract 3、Tesseract 4 和 Tesseract 5。
Read
Text
Explore the IronTesseract C# OCR How-To Guide
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 語言支持 IronOCR 支援 125 種國際語言。 除了預設安裝的英文之外,還可以透過 NuGet 將其他語言套件新增至您的 .NET 專案中,或從我們的語言頁面下載其他語言套件。 大多數語言都提供快速、標準(建議)和最佳品質三種版本。 最佳品質選項可能提供更準確的結果,但處理時間也會更慢。 使用 IronOCR 探索多種語言的 OCR 技術。
IronOCR 支援 125 種國際語言。 除了預設安裝的英文之外,還可以透過 NuGet 將其他語言套件新增至您的 .NET 專案中,或從我們的語言頁面下載其他語言套件。
大多數語言都提供快速、標準(建議)和最佳品質三種版本。 最佳品質選項可能提供更準確的結果,但處理時間也會更慢。
使用 IronOCR 探索多種語言的 OCR 技術。
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
Barcode
無論是產品、整合還是許可查詢,Iron產品開發團隊都隨時準備支持您的所有問題。與Iron聯繫,開始對話,以便在您的專案中充分利用我們的庫。
IronOCR(光學字符識別)庫讓開發人員在將圖像轉換為文字時快速高效。 IronOCR 與 .NET、VB .NET 和 C# 一起工作。我們的頂級 .NET 應用程式針對 .NET 框架專門設計,支持開發者在項目中獲得最佳性能。
OCR 接收並識別文字文件、條碼、QR 內容等。不過,IronOCR 也提供了多種方法,允許您將 OCR 閱讀和來自圖像的文字添加到網絡、Windows 桌面或控制台 .NET 項目中,支持幾乎無限的圖像格式和文件,如 JPG、PNG、GIF、TIFF、BMP、JPEG 或 PDF。
雖然圖像輸出的純文字、字符、行和段落的識別結果可能看似不簡單,但您會發現 IronOCR 底層的結果實際上比您最初想象的要簡單。 IronOCR 掃描圖像以校準,使用其噪聲去除和過濾器檢查質量和分辨率。 它查看其屬性,優化 OCR 引擎,並使用訓練的人工智能網絡來識別文本(來自圖像)以及任何人類。
OCR 即便對於計算機也不是一個簡單的過程。 不過,IronOCR 使創建可搜索文檔的整體過程更快更簡單,具有 100% 的準確性和最少的代碼行。
兼容 .NET, VB.NET, C#
軟件並不局限於地理邊界——企業跨越國界運作並依賴多種語言來達成成果。同樣,一個僅在單一語言中執行文件識別的光學字符識別(OCR)工具在各方面都是一個重大否定!
擁有一個提供多種 OCR 功能的多語言 OCR 庫,您可以從掃描的 PDF 或掃描的圖像中創建一個可搜索的 PDF 文檔(從法語到中文!)。 您的時間和精力將變得更加高效,您、您的客戶或您的組織可以無限次使用和重用這個動態的、可搜索的 PDF 文檔。
我們以您、您的業務和您的 OCR 需求為重點,無論是內建還是應要求,IronOCR 庫支持眾多語言。 您的下一個 .NET 項目可以不再為語言兼容性問題擔憂!
無論是阿拉伯語、西班牙語、法語、德語、希伯來語、意大利語、日語、簡體中文、繁體中文(國語)、丹麥語、英語、芬蘭語、葡萄牙語、俄語、瑞典語,只要您命名我們便為您提供! 您可以下載您偏好的語言包或聯繫我們的 24/7 支持以獲得更多語言。
第一步是使用我們的 NuGet 包安裝程序安裝於 Windows Visual Studio。
IronOCR 與競爭對手有何不同? 除了讓您輕鬆添加 OCR 功能、提取文字和掃描旋轉圖像之外,它還能夠從不完美的掃描中執行 OCR! 相對而言,當今市場上許多現成產品通常僵化且不準確,注定在現實世界的個人和企業應用中失敗,因為其中大多數與機器打印的、高分辨率且完美調整的文字一起工作。
IronOCR 使用其強大的 IronTesseract DLL 擴展了 Google Tesseract 的功能 - 一個本地 C# OCR 庫,比免費的 Tesseract 庫具有更高的穩定性和更高的準確性。
擁有最佳工具,即便您擁有一張不完美的掃描圖像或存儲在存儲文件夾中的圖像,IronOCR 的圖像處理庫轉換清除噪聲、旋轉、減少畸 變和歪斜對齊,並改善分辨率和對比度。 高級光學字符識別 (OCR) 設定為您 - 程序員 - 提供了生成最佳可能可搜索結果的工具和代碼,次次如是。
搜尋您需要的字詞,從不會對 99.8-100% 準確的結果和 PDF 文檔、多幀 TIFF 文件、JPEG 和 JPEG2000、GIF、PNG、BMP、WBMP、System.Drawing.Image、System.Drawing.Bitmap、System.IO.Streams 圖像、二進制圖像數據(字節 [])等一切之外的支持感到失望!
不同於 .NET 框架中的其他 .NET 應用,您會發現 在 IronOCR 的包管理器控制台和識別文本控制台中的高級光學字符識別,給您的用戶提供了讀取多個單詞字體(從 Times New Roman 到任何花俏或難以理解的字體)字重和樣式的能力,讓 整圖像或掃描圖像的準確文本閱讀變得更好。我們選擇圖像某些區域的能力有助於提高速度和準確性。從幾行到幾段的多線程加速了 OCR 引擎的運行,並允許在多核心機器上讀取多份文件。
我們對於速度和準確性的要求不僅限於字符識別過程。相反,從安裝開始就有所改善,因為 IronOCR 的 .NET OCR 引擎是一個易於安裝,完整且文檔完備的 .NET 軟件庫。 Visual Studio 上有一個單一的 NuGet 包管理器安裝,以及與 MVC、WebApp、桌面、控制台和服務器應用程序的多線程兼容性。
您可以實現 99.8-100% 的 OCR 準確性無需任何外部 web 服務,持續的費用或發送機密文檔到互聯網上。 IronOCR 在需要時候,是滿足您所需的完整 PDF OCR 支持的明智選擇,能夠支持多字符、字詞、行、段落、文本和文檔,而不需要繁瑣的 C++ 編碼。
我們為尋求完善代碼的開發人員提供了最好的選擇,因為 IronOCR 開箱即用無需性能調優或對輸入圖像進行大量修改。 最新版本的 IronOCR 工作速度驚人 —— 比以前的構建快十倍,且 產生的錯誤數量减少了 250%。 我們更新我們自己的構建以支持您的目標提供完美的平台,以便實現 OCR!
即便在使用移動設備時,我們完美的 .NET OCR 庫也能讓開發人員安心編碼,因為 IronOCR 支持將內容導出為一組簡單的、複雜的文本、機器編碼文本、條碼數據或結構化對象模型數據。 您可以將內容段落、行、單詞、字符和圖像字符串結果拆分,並直接在 .NET 應用中使用。
從源代碼到最終結果 - 如果您不能夠將結果導出到應用程式,則結果數據將毫無用處。 IronOCR 明白這一點,因此允許您 將 OCR 結果導出為 XHTML,以便能夠在更廣泛的應用程序中使用可持續的格式,並與復雜的網站集成,並提高加載速度!
然而,支持並不止於此。將 OCR 導出至可搜索 PDF 文檔可使您、您的客戶和組織能夠隨時存儲和檢索 PDF 文檔!當您有一份 30 頁的合同,可以使用幾個關鍵字從數據庫中進行搜索時,這尤其有益! 同時,也讓您可以以合規友好的姿態展示您的公司,因為已證明可搜索 PDF 文件對視障人士是有益的。
除此之外, 您還可以將結果導出至表示 OCR 輸出、佈局信息和樣式信息的 OCR 格式,並將相關信息嵌入標準 HTML 中。
免費 社區開發許可證。商業許可證從 $749 開始。
C# Tesseract OCR
Jim 在 IronOCR 的開發中是一位領導人物。Jim 設計和構建影像處理算法及 OCR 的讀取方法。
C# OCR ASP.NET
學習 Gemma 的團隊如何使用 IronOCR 從影像中讀取文本以用於他們的檔案存檔軟件。Gemma 分享了她自己的代碼樣本。
Iron 的團隊有超過 10 年的 .NET 軟件組件市場經驗。
直接與我們的開發團隊交談
在線手冊清晰易懂。
免費開發許可證。商業版從 $749 起。
使用 NuGet 或 DLL 在幾分鐘內開始。
無需信用卡
試用表單已提交成功。您的試用密鑰應該在電子郵件裡。如果沒有,請聯繫support@ironsoftware.com
您的試用密鑰應該在電子郵件裡。如果沒有,請聯繫support@ironsoftware.com
在生產環境中測試而不帶水印。適用於您所需的任何地方。
獲得 30 天完整功能產品。幾分鐘內即可運行。
在您的產品試用期間全面訪問我們的支持技術團隊
產品與其關鍵功能的即時展示
獲取項目特定的功能建議
我們會回答您所有的問題,以確保您掌握所有需要的資訊。(絕無承諾)。
請檢查您的電子郵件以取得試用授權金鑰。
如果您沒有收到電子郵件,請啟動 即時聊天 或寄送電子郵件至 support@ironsoftware.com
預約無需承諾的諮詢
完成以下表單或發送電子郵件至 sales@ironsoftware.com
您的詳細信息將始終保密。
預訂 30 分鐘的個人演示。
無須合約、無須卡號、無任何長期綁約。
版權所有 © Iron Software 2013-2026