使用 IronOCR 進行 .NET MAUI 光學字符識別
介紹
Microsoft 發布了 .NET MAUI(跨平台應用程式使用者介面),是一個用於用 .NET Framework 建立跨平台應用程序的框架。 它允許您使用相同的代碼庫編寫代碼,以在Android、iOS和Windows上運行,從而節省您的時間、資源和努力。 .NET MAUI 是開源的。 您可以在以下位置獲取帶有範例的 .NET MAUI 項目的源代碼: GitHub.
在本操作指南中,我們將學習如何使用 IronOCR 函式庫在 .NET MAUI 上創建 OCR 處理器應用程式,並提供範例。
如何在 .NET Maui 中執行 OCR
IronOCR:.NET OCR 庫
IronOCR是一個.NET OCR NuGet庫,使開發人員能夠輕鬆集成光學字符識別(光學字符識別)將功能整合到他們的項目中。 使用 IronOCR,PDF 文件可以掃描並轉換成可搜索和可編輯的文字/資料,而不會有任何資料品質的損失。 這讓使用者能夠輕鬆地從PDF文件中找到他們需要的資訊,並在必要時進行更改或更正。
IronOCR 是各平台上可用的 Tesseract 二進制文件中最先進的版本。 它提供了更高的速度、準確性以及支援所有版本的 Tesseract 的原生 DLL/API。(從 Tesseract 3 到 Tesseract 5)透過一次簡單的安裝/下載。
IronOCR的語言支持非常廣泛,為用戶提供125種國際語言。 工具/DLL 預設安裝了英語。 但是,您可以通過 NuGet 安裝或下載 DLL 來輕鬆添加更多語言。
與 Tesseract 的比較
IronOCR 專門為 C# 開發者設計,可與 .NET 應用程式無縫整合。 相比之下,Tesseract 是一個通用的 OCR 函式庫,它要求開發者自行撰寫包裝程式,以便在 C# 中使用。 此外,由於採用了創新的人工智能算法,IronOCR 提供了比其他庫更高的準確性和速度。
IronOCR提供全面的文件和技術支援,即使是初學者開發者也能迅速上手。
IronOCR 的準確度遠高於 Tesseract。 事實上,它的準確率超過99%,而Tesseract的準確率僅約70.2%至92.9%。 瞭解更多關於IronOCR和Tesseract比較的信息和支持。 YouTube 影片。
創建 OCR MAUI 應用的步驟
按照以下步驟使用 IronOCR 在 .NET MAUI 框架中創建一個 OCR 應用。
先決條件
要在 .NET MAUI 中创建 OCR 应用程序,有一些先决条件。
Visual Studio 2022(最新版本)
.NET 6 或 7
在 Visual Studio 中安裝的 MAUI 套件
- 一個在 Visual Studio 中運行的 .NET MAUI 專案
安裝 IronOCR
首先要使用 NuGet Packages Manager Console 安裝 IronOCR 函式庫。 右鍵單擊解決方案瀏覽器,並輸入以下命令以在 NuGet 包控制台中安裝 IronOCR 庫。
Install-Package IronOcr
前端設計
我們將在本節設計應用程式的前端。 打開 MainPage.xaml 檔案。
我們指定一個按鈕,用於選擇要進行OCR的圖片或PDF文件。 按鈕的 clicked
屬性設置為執行 IOCR
函數。 我們將在下一節中定義此函數。
<Button
x:Name="OCR"
Text="Click to OCR"
Clicked="IOCR"
HorizontalOptions="Center" />
在這裡,我們創建一個名為 OCRImage
的 Image
框。 此圖像框將幫助顯示所選擇的文件。
<Image
x:Name="OCRImage"
SemanticProperties.Description="Selected Image"
HeightRequest="300"
HorizontalOptions="Center" />
接下來,我們創建一個Editor
控件。 它將用來顯示從圖像或 PDF 文件中提取的文字。
<Editor
x:Name="outputText"
HorizontalOptions="Center"
WidthRequest="600"
HeightRequest="300"
/>
這是完整的 XAML 使用者介面標記。
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="IronOCR_MAUI_Test.MainPage">
<ScrollView>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Button
x:Name="OCR"
Text="Click to OCR"
Clicked="IOCR"
HorizontalOptions="Center" />
<Image
x:Name="OCRImage"
SemanticProperties.Description="Selected Image"
HeightRequest="300"
HorizontalOptions="Center" />
<Editor
x:Name="outputText"
HorizontalOptions="Center"
WidthRequest="600"
HeightRequest="300"
/>
</VerticalStackLayout>
</ScrollView>
</ContentPage>
現在,是時候編寫OCR功能的代碼了。
使用 IronOCR 的 OCR 代碼
打開 "MainPage.xaml.cs" 類別檔案並在其中寫入以下函數。
private async void IOCR(object sender, EventArgs e)
{
var images = await FilePicker.Default.PickAsync(new PickOptions
{
PickerTitle = "Pick image",
FileTypes = FilePickerFileType.Images
});
var path = images.FullPath.ToString();
OCRImage.Source = path;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
input.AddImage(path);
OcrResult result = ocr.Read(input);
string text = result.Text;
outputText.Text = text;
}
}
private async void IOCR(object sender, EventArgs e)
{
var images = await FilePicker.Default.PickAsync(new PickOptions
{
PickerTitle = "Pick image",
FileTypes = FilePickerFileType.Images
});
var path = images.FullPath.ToString();
OCRImage.Source = path;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
input.AddImage(path);
OcrResult result = ocr.Read(input);
string text = result.Text;
outputText.Text = text;
}
}
Private Async Sub IOCR(ByVal sender As Object, ByVal e As EventArgs)
Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
.PickerTitle = "Pick image",
.FileTypes = FilePickerFileType.Images
})
Dim path = images.FullPath.ToString()
OCRImage.Source = path
Dim ocr = New IronTesseract()
Using input = New OcrInput()
input.AddImage(path)
Dim result As OcrResult = ocr.Read(input)
Dim text As String = result.Text
outputText.Text = text
End Using
End Sub
讓我們來分析上面的代碼。
以下代碼片段可協助使用C#的FilePicker
對象選擇圖片。 FilePicker
標題和 FilePicker
文件類型都被設置為值,以及圖片的路徑。
var images = await FilePicker.Default.PickAsync(new PickOptions
{
PickerTitle = "Pick image",
FileTypes = FilePickerFileType.Images
});
var path = images.FullPath.ToString();
var images = await FilePicker.Default.PickAsync(new PickOptions
{
PickerTitle = "Pick image",
FileTypes = FilePickerFileType.Images
});
var path = images.FullPath.ToString();
Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
.PickerTitle = "Pick image",
.FileTypes = FilePickerFileType.Images
})
Dim path = images.FullPath.ToString()
Image
框控件接下來被配置為使用上面 path
變量中指定的圖像。
OCRImage.Source = path;
OCRImage.Source = path;
OCRImage.Source = path
之後,我們開始透過創建一個新的 IronTesseract
類實例來使用 IronOCR。 我們使用它從選定圖像中提取文本,然後在編輯器控件中顯示內容。
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
input.AddImage(path);
OcrResult result = ocr.Read(input);
string text = result.Text;
outputText.Text = text;
}
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
input.AddImage(path);
OcrResult result = ocr.Read(input);
string text = result.Text;
outputText.Text = text;
}
Dim ocr = New IronTesseract()
Using input = New OcrInput()
input.AddImage(path)
Dim result As OcrResult = ocr.Read(input)
Dim text As String = result.Text
outputText.Text = text
End Using
輸出
在執行專案後,會顯示以下的使用者介面。當您點擊按鈕時,系統會提示您從任何位置選取圖片或PDF。
在選取圖片後,IronOCR 處理圖片並在編輯器控件中顯示識別出的文字。 您可以從編輯器控件中複製文本。
從結果來看,IronOCR 在處理帶有圖案的複雜圖像時做得非常出色,展示了精確的結果。 IronOCR 能夠透過其預訓練的模型檢測信件上的紅點,並選擇所需的確切字母。
結論
如需進一步閱讀,請參考此教程說明如何使用IronOCR的附加信息從圖像中讀取文本.
IronOCR 的開發用途是免費的。 您可以以非常低的價格購買,起價僅為$749。 查看價格計劃這裡.