在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
OCR代表光學字符識別。 它提供將影像文件轉換為機器編碼文本的功能。 掃描的文件總是以圖像文件的形式保存在電腦中。 這些影像檔案中的數據無法使用普通的文字編輯器或文字處理應用程式進行搜尋、編輯或儲存為文字格式。 OCR 處理有助於將這些圖像轉換為機器可讀取的文字,以便用戶進一步處理。
在現代,透過 int.NET 分享的掃描文件是數位格式,主要是 PDF 或圖像形式。 有很多線上資源可以將圖像轉換為文字。 然而,大多數企業需要在其軟體應用程式中具備此功能。 考慮到這一點,有許多庫提供可以嵌入到軟體應用中的OCR處理技術。
在本文中,我們將討論兩個最受歡迎的 C# OCR 庫。 這些是:
IronOCRfor .NET 是一個用於掃描、搜索和閱讀圖像及 PDF 的 C# 函式庫。 將圖像或 PDF 文件作為輸入,並使用最新的 Tesseract 5 自訂構建 .NET OCR 引擎輸出文字、結構化數據或可搜尋的 PDF 文件。 它的 Tesseract 支持 125 多種語言,並提供 .NET Core, Standard 的跨平台支持,版本從 2.0 到 7。
IronOCR 是一個使用者友好的 API,可讓 C# 開發人員透過使用 IronTesseract
類別和 API 金鑰,自動將圖像轉換為文本。 它優先考慮速度、準確性和易用性。 它還可以幫助電腦視覺 API 使用訓練好的模型來找到文字。
IronOCR 的另一個強大功能是,它可以掃描所有圖像文件中的條碼和 QR 碼並讀取其文本。 IronOCR 的其他重要功能如下所示。
System.Drawing Objects
,流,PDF 文件(最佳化目標DPI)簡單數據輸出: .NET 文本字串、Barcode 和 QR 資料、圖像
現在,讓我們來看看 Google Cloud Vision API。
Google Cloud Vision API是一個支持C#語言的Google Cloud OCR客戶端庫。 它使 C# 開發者能夠輕鬆地將計算機視覺檢測功能集成到軟體應用中。 它執行光學字符識別(OCR)並從圖像文件中檢測文本、圖像標籤、人臉檢測和地標檢測。
Google Cloud Vision API 使用 REST 和 RPC API 提供強大的預訓練機器學習模型。(機器學習)模型。 使用 Cloud 導入视觉 API,您可以快速將圖像分類到已經預定義的百萬個類别中。 它還可以檢測物體,讀取印刷文件和手寫文字中的文本。
標籤檢測:返回圖像的通用標籤
其餘的文章如下:
建立 Visual Studio 專案
安裝 IronOCR
安裝 Google OCR
影像轉文字
條碼和 QR 至文本
PDF 轉換為文字
授權
在本教程中,我們將使用最新版本的 Visual Studio 2022。 所以,我假設你已經下載並安裝了 C#。 如果沒有,您可以從下載Visual Studio 網站.
現在,我們需要創建一個控制台專案以開始使用這兩個庫。 按照以下步驟創建專案:
按一下「建立新專案」。
從給定選項中選擇 C# 控制台應用程序。
點擊下一步。
![如何在 C# Windows 應用程式中列印條碼
圖 3 - 設定專案](/static-assets/ocr/blog/google-ocr-api-alternatives/google-ocr-api-alternatives-3.webp)
從附加資訊中,選擇 .NET 6.0 Framework,因為它是最穩定的版本。
現在,點擊「建立」,專案將在您指定的位置建立。
接下來,我們將在專案中安裝庫以進行比較。
有多種方法可以安裝IronOCR庫。 讓我們一個一個來看看它們。
NuGet 是一個用於在您的專案中下載和安裝相依項目的套件管理工具。 其套件包含已編譯的代碼(DLL)和清單檔案。使用以下方法存取它:
點擊管理解決方案的 NuGet 套件。
![如何在 C# Windows 應用程序中列印條碼
圖 5 - NuGet 套件管理員](/static-assets/ocr/blog/google-ocr-api-alternatives/google-ocr-api-alternatives-5.webp)
點擊管理 NuGet 套件
現在,NuGet 套件管理器視窗將會開啟。 瀏覽 IronOCR 並點擊安裝。
可以從 NuGet 官方網站直接下載。請按照以下步驟操作:
點擊連結:""。
單擊頁面右側的下載套件選項。
打開下載的套件,它將開始安裝。
只需訪問 Iron Software 網站並導航到 IronOCR for .NET 網頁。 滾動到頁面底部,然後點擊下載 DLL 或下載 Windows 安裝程式。
會下載一個 Zip 檔案。 將其提取並添加到您的專案檔案中或運行 Windows 安裝程式。 按照以下步驟將其添加到專案中。
在 Visual Studio 中,從方案總管中右鍵點擊專案的相依性。
然後,選擇選項新增專案參考。
瀏覽已下載的DLL文件位置。
在 Visual Studio 中導覽到工具選項卡。
擴展 NuGet 套件管理器選項。
Install-Package IronOCR
這將自動下載並安裝 IronOCR 在您的專案中。
現在,我們已準備好在項目中使用IronOCR。
只需要一個命名空間,並需要在我們需要訪問其功能的源代碼文件頂部添加。
using IronOCR;
using IronOCR;
Imports IronOCR
現在,讓我們安裝 Google Vision OCR。
要在您的 C# 專案中使用 vision API,您必須滿足以下先決條件。
創建 Google 帳戶
從 Google Cloud 控制台創建一個新項目
啟用計費
啟用視覺 API
建立服務帳戶並設置憑證
下載服務帳戶密鑰憑證為 JSON 文件格式
您可以從官方文檔中詳細了解使用 Google Cloud Vision 的設定和要求。這裡.
現在,為了在 Visual Studio 中安裝 Google Cloud 用戶端程式庫以執行 OCR 處理,我們需要使用 NuGet 套件管理器。
使用以下方法存取:
點選管理解決方案的 NuGet 套件
點擊管理 NuGet 套件
現在,NuGet 套件管理器視窗將會開啟。 瀏覽 Google Cloud Vision OCR 並點擊安裝。
![如何在 C# Windows 应用程序中打印条码
圖 11 - Google Cloud Vision OCR](/static-assets/ocr/blog/google-ocr-api-alternatives/google-ocr-api-alternatives-11.webp)
若要使用 Google OCR Vision API,請包含以下命名空間:
using Google.Cloud.Vision.V1;
using Google.Cloud.Vision.V1;
Imports Google.Cloud.Vision.V1
此外,使用在 JSON 文件中下載的密鑰憑證來設置環境變量。
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
現在,一切都設置完畢,可以使用了。
從圖像中讀取資料是一項相當繁瑣的任務。 圖像解析度和品質在提取內容時起著重要作用。 這兩個庫都提供光學字符識別(光學字符識別)從圖像中提取文本的功能。
IronOCR 的強大 IronTesseract
類讓開發人員輕鬆讀取圖像文件的內容。 在這裡,我們將使用 PNG 圖像來從圖片檔案讀取文字以及程式碼如下:
var OCR = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddImage("test-files/employmentapp.png");
var Result = OCR.Read(Input);
Console.WriteLine(Result.Text);
}
var OCR = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddImage("test-files/employmentapp.png");
var Result = OCR.Read(Input);
Console.WriteLine(Result.Text);
}
Dim OCR = New IronTesseract()
Using Input = New OcrInput()
Input.AddImage("test-files/employmentapp.png")
Dim Result = OCR.Read(Input)
Console.WriteLine(Result.Text)
End Using
![如何在 C# Windows 應用程式中列印條碼
圖 12 - 帶邊界框的輸入](/static-assets/ocr/blog/google-ocr-api-alternatives/google-ocr-api-alternatives-12.webp)
IronOCR 的輸出與提供給它的原始圖像相符。 程式碼簡潔易懂,沒有任何技術細節。
Google Cloud Vision OCR 也可以將圖片中的不同字體轉換為文字。 首先,我們需要使用憑證文件來創建一個客戶端。然後使用這個客戶端對象,我們可以調用 DetectText
方法以獲取以註釋形式呈現的回應。 代碼如下:
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
var client = ImageAnnotatorClient.Create();
var image = Image.FromFile("test-files/employmentapp.png");
var response = client.DetectText(image);
foreach (var annotation in response)
{
if (annotation.Description != null)
{
Console.WriteLine(annotation.Description);
}
}
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
var client = ImageAnnotatorClient.Create();
var image = Image.FromFile("test-files/employmentapp.png");
var response = client.DetectText(image);
foreach (var annotation in response)
{
if (annotation.Description != null)
{
Console.WriteLine(annotation.Description);
}
}
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
Dim client = ImageAnnotatorClient.Create()
Dim image As System.Drawing.Image = System.Drawing.Image.FromFile("test-files/employmentapp.png")
Dim response = client.DetectText(image)
For Each annotation In response
If annotation.Description IsNot Nothing Then
Console.WriteLine(annotation.Description)
End If
Next annotation
為了比較兩個庫的輸出,將相同的圖像作為輸入提供。
從上述輸出中,你可以清楚地看到,IronOCR 保留了圖像輸出格式。 雖然 Google OCR 提供了準確的輸出文本,但表格的格式沒有被保留。 IronOCR 完整保留了表格的格式,如給定圖像所示。
IronOCR 在讀取圖像時提供了一個獨特且實用的功能,即它可以讀取條碼和 QR 碼。 它可以輕鬆檢測條碼並顯示其值。 首先,將 ReadBarCodes
配置設置為 true,然後遍歷 OCR 結果中的每個條碼。 下面是讀取條碼的程式碼:
var OCR = new IronTesseract();
OCR.Configuration.ReadBarCodes = true;
using (var input = new OcrInput()){
input.AddImage("test-files/Barcode.png");
var Result = OCR.Read(input);
foreach (var Barcode in Result.Barcodes){
Console.WriteLine(Barcode.Value);
}
}
var OCR = new IronTesseract();
OCR.Configuration.ReadBarCodes = true;
using (var input = new OcrInput()){
input.AddImage("test-files/Barcode.png");
var Result = OCR.Read(input);
foreach (var Barcode in Result.Barcodes){
Console.WriteLine(Barcode.Value);
}
}
Dim OCR = New IronTesseract()
OCR.Configuration.ReadBarCodes = True
Using input = New OcrInput()
input.AddImage("test-files/Barcode.png")
Dim Result = OCR.Read(input)
For Each Barcode In Result.Barcodes
Console.WriteLine(Barcode.Value)
Next Barcode
End Using
輸入中的三個條碼均成功讀取,並顯示其隱藏文字。
Google Vision API 尚不支持此功能。 在軟體應用程式中,讀取條碼可以很方便。 然而,Google OCR 允許您提取手寫文字,並從作為圖像文件的掃描文檔中獲取文字。標籤檢測的代碼如下:
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
var labels = client.DetectLabels(image);
Console.WriteLine("Labels (and confidence score):");
Console.WriteLine(new String('=', 30));
foreach (var label in labels)
{
Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
}
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
var labels = client.DetectLabels(image);
Console.WriteLine("Labels (and confidence score):");
Console.WriteLine(new String('=', 30));
foreach (var label in labels)
{
Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
}
Imports System
Dim client = ImageAnnotatorClient.Create()
Dim image = System.Drawing.Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg")
Dim labels = client.DetectLabels(image)
Console.WriteLine("Labels (and confidence score):")
Console.WriteLine(New String("="c, 30))
For Each label In labels
Console.WriteLine($"{label.Description} ({CInt(Math.Truncate(label.Score * 100))}%)")
Next label
在 IronOCR 中,閱讀 PDF 檔案就像閱讀影像檔案一樣簡單。 您只需要將圖片讀取程式碼中的 AddImage
方法更改為 AddPdf
。 代碼如下:
var OCR = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddPdf("test-files/example.PDF");
var Result = OCR.Read(Input);
Console.WriteLine(Result.Text);
}
var OCR = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddPdf("test-files/example.PDF");
var Result = OCR.Read(Input);
Console.WriteLine(Result.Text);
}
Dim OCR = New IronTesseract()
Using Input = New OcrInput()
Input.AddPdf("test-files/example.PDF")
Dim Result = OCR.Read(Input)
Console.WriteLine(Result.Text)
End Using
提取的文本格式與 PDF 文件相同。
Google OCR 也提供從 PDF/TIFF 文件中提取文字的功能。 但是,只有當檔案位於 Google 雲端儲存空間時才能檢測到文字。 為此,您需要創建一個 Google Storage 儲存桶。 C# 的程式碼在這裡實現並不簡單,而且相當冗長。 沒有可用於 C# 檢測檔案中文字的範例。 您可以查看Java 代碼作為參考來嘗試一下。
IronOCR 可供開發用途免費使用,需獲得商業使用許可。 它還提供免費試用,以測試其潛力是否滿足您的需求。 Lite 套餐的起始價格為 $749,附帶一個免費試用. IronOCR 提供 1 年的免費產品支援和更新服務,之後每年收費 $399。 所有授權永久有效,這意味著只需一次購買,無其他隱藏費用。 您也可以選擇 SaaS 和 OEM 產品的免版稅再分發覆蓋,只需一次性購買 $1999。 如需了解有關授權方案及定價計劃的更多資訊,請訪問這裡.
Google Cloud Vision 的定價方案是根據應用程式在影像上執行的操作次數來計算的。 對於像 PDF 這樣的多頁文件,每一頁都被視為一個圖像。 此外,每個應用於圖像的功能都是一個單獨的計費單位。 例如,如果您對同一張影像應用文字檢測和標籤檢測,則每個功能將分別計費。 以下是定價方案,如需更多信息,請訪問此網站連結.
IronOCR 為 C# 開發者提供了我們所知的任意平台上最先進的 Tesseract API。 IronOCR 可以部署在 Windows、Linux、Mac、Azure、AWS、Lambda,並支持 .NET Framework 專案以及 .NET Standard 和 .NET Core。 我們還可以在OCR掃描中讀取條碼,甚至將我們的OCR導出為HTML和可搜索的PDF。
Google Cloud Vision API 是一個先進的 AI 構建 API。 它提供多種影像分析功能,非常有助於構建機器學習應用程式。 它允許開發人員使用 API 金鑰直接與 Google Cloud 通訊,這意味著不需要將文件儲存在本地。
IronOCR 授權是以使用者為基礎,這意味著您應該根據將使用該產品的開發人員數量來購買授權。 Google Cloud Vision 授權基於需要提取資訊和分析數據的圖片數量。 這些授權是按月計費的,與 IronOCR 授權相比,處理大量圖像時價格會變得非常高。 此外,IronOCR 授權為一次性購買,可以永久使用,並支援 OEM 和 SaaS 發行。
總體而言,這兩個庫都具備機器學習功能。 IronOCR 比 Google OCR 略具優勢,因為它專為 C# .NET 框架構建,速度快且省時。 它提供所有功能,只需很少的程式碼行數,減輕了開發人員撰寫冗長程式碼的負擔。 它基於最受歡迎的 Tesseract 5 API,使其易於整合和分析圖像及其他檔案格式,且具有精確的輸出。 另一方面,Google Vision OCR 建立在 AI 基礎上,更專注於 Java、Python 和 REST,且只能在連接到 Google Cloud 時運行。 由於響應來自伺服器端,這可能會耗費時間。您可以根據您的特定需求選擇合適的庫。
現在,您可以用兩個的價錢獲得五個Iron產品。Iron Suite中包含以下工具: