在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
using IronOcr;
string imageText = new IronTesseract().Read(@"images\image.png").Text;
Imports IronOcr
Private imageText As String = (New IronTesseract()).Read("images\image.png").Text
<p>IronOCR 能夠自動檢測並讀取來自掃描不完美的圖片和 PDF 文件中的文字,這點是獨特的。 <code>IronTesseract</code> 類提供了最簡單的 API。</p> <p>嘗試其他代碼示例以獲得對您的C# OCR操作的細粒度控制。</p> <p>IronOCR 提供了目前任何平台上已知的最先進的 Tesseract 構建。 具有提高的速度、準確性以及原生的 DLL 和 API。</p> <p>支持 Tesseract 3、Tesseract 4 和 Tesseract 5 的 .NET Framework、Standard、Core、Xamarin 和 Mono。</p> <div class="hsg-featured-snippet"> <h2>如何在 VB.NET 中進行 OCR</h2> <ol> <li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronOcr/" target="_blank" rel="nofollow noopener noreferrer">安裝 VB.NET 函式庫以對影像或 PDF 進行 OCR</a></li> <li>實例化 <code>IronTesseract</code> 使用直觀的API</li> <li>利用 <code>讀取</code> 在 VB.NET 中執行 OCR 的方法</li> <li>透過存取 `Text` 屬性獲取 OCR 結果</li> <li>在一行程式碼中執行 2、3 和 4 個動作。</li> </ol> </div>
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
<p>IronOCR 支援 125 種國際語言。</p> <p>除了預設安裝的英語之外,還可以通過 NuGet 或從我們的網站下載添加到您的 .NET 項目的語言包。<a href="/csharp/ocr/languages/" target="_blank" rel="nofollow noopener noreferrer">語言頁面</a>.</p> <p>大多數語言都提供快速和標準版本。(推薦)及最佳品質。 更準確的可能會更慢。</p>
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
<p>IronOCR 使用 Tesseract 5 掃描每個頁面時,會返回一個進階的結果物件。 此包含每個項目的<strong>位置數據、圖像、文本、統計信心、替代符號選擇、字體名稱、字體大小裝飾、字體粗細和位置</strong>。</p> <ul> <li>頁面</li> <li>段落</li> <li>行文字</li> <li>Word</li> <li>個別字符</li> <li>和條碼</li> </ul>
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% 的準確性和極少的代碼行數。
閱讀教程軟件並不限於地理邊界——企業於跨國界運營並依賴多種語言來實現其目標。同樣,一個光學字符識別(OCR)工具如果只能進行單一語言的文檔識別,無論從哪一個方面來說都是一個重大的失誤!
使用多語言OCR庫提供多種OCR功能,您可以從掃描的PDF或掃描的圖像中創建可搜索的PDF文件,支持多種語言(從法語到中文!)。動態的、可搜索文本的PDF文件幫助您節省時間和精力,您、您的客戶或您的組織可以無限制地使用和重用。
以您、您的業務及您的光學文字辨識需求為重點,無論是內建還是按需求定制,IronOCR 函式庫支援多種語言。我們保證您的下一個 .NET 專案不會有語言不兼容的困擾!
無論是阿拉伯語、西班牙語、法語、德語、希伯來語、意大利語、日語、簡體中文、繁體中文(國語)、丹麥語、英語、芬蘭語、葡萄牙語、俄語、西班牙語或瑞典語,只要您說出語言名稱,我們就會為您提供!您可以下載您喜歡的 語言包 或聯繫我們的24/7支援以獲取更多語言。
第一步是使用我們的NuGet套件安裝程式來安裝Windows Visual Studio。
下載語言包IronOCR 與其他競爭產品有何不同?除了讓您輕鬆添加 OCR 功能、提取文本和掃描旋轉圖像之外,它還能夠從不完美的掃描中執行 OCR!相較之下,當今市場上許多現成的產品通常僵化且不精確,在真實世界的個人和企業應用中註定會失敗,因為它們大多數僅適用於機器印刷、高解析度和完美調整的文本。
IronOCR 擴展了 Google Tesseract 的功能,使用其強大的 IronTesseract DLL——一個本機 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的圖像、二進制圖像數據(byte[])以及其他一切提供無限支持!
Tesseract 的替代方案與 .NET 框架中的其他 .NET 應用程式不同,你會發現 IronOCR 的套件管理器控制台和已識別文字控制台中的先進光學字符識別 (OCR) 能夠讓用戶讀取多種文字字體(從 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 平台!
查看完整功能列表即使使用行動裝置,我們完美的 .NET OCR 庫也能讓開發人員“無憂無慮”地編寫程式,因為 IronOCR 支援將內容導出為一組簡單或複雜的文本、機器編碼的文本、條碼數據或結構化的對象模型數據。您可以將內容拆分為段落、行、單詞、字符和圖像字符串結果,直接在您的 .NET 應用程式中使用。
從原始碼到最終結果—如果無法將結果數據導出到您的應用程式,那麼它將毫無用處。IronOCR 了解這一點,並允許您將 OCR 結果導出為 XHTML,以便能夠在更廣泛的應用程式中使用可持續的格式並集成到複雜的網站中,更不用說更快的加載時間了!
然而,支援並不止於此。將 OCR 導出為可搜索的 PDF 文件,使您、您的客戶和組織可以隨時儲存和檢索 PDF 文件!這尤其有利於當您有一份 30 頁的合約,您只需使用幾個關鍵詞即可在資料庫中搜索,這也使您的公司能夠呈現出符合規範的形象,因為可搜索的 PDF 文件被證明對視障者有益。
除了上述之外,您還可以將結果導出為OCR格式,該格式代表您的OCR輸出、佈局資訊和樣式資訊,並將相關資訊嵌入標準HTML中。
了解更多C# Tesseract 光學字符識別
C# 光學字符識別 ASP.NET
Iron 團隊在 .NET 軟體元件市場有超過 10 年的經驗。