使用 IronOCR 的 .NET MAUI OCR Copy for LLMsCopy for LLMs Copy page as Markdown for LLMs
# 使用 IronOCR 的 .NET MAUI OCR
## 简介
微软发布了 .NET MAUI(多平台应用程序用户界面),这是一个使用 .NET Framework 构建跨平台应用程序的框架。 它允许您使用同一套代码库编写可在 Android、iOS 和 Windows 上运行的代码,从而节省您的时间、资源和精力。 .NET MAUI 是开源的。 您可以在[GitHub](https://github.com/dotnet/maui)上获取 .NET MAUI 项目的源代码及示例。
在本操作指南中,我们将学习如何使用 IronOCR 库在 .NET MAUI 上创建 OCR 处理器应用程序,并附有示例。
<div class="hsg-featured-snippet">
<h2>如何在 .NET MAUI 中执行 OCR</h2>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronOcr/">下载用于在 .NET MAUI 中执行 OCR 的 C# 库</a></li>
<li>配置 MAUI 项目的前端</li>
<li>使用<strong>FilePicker</strong>类传递图像的完整路径</li>
<li>调用<code>Read</code>方法对图像执行 OCR 识别。</li>
<li>通过访问<strong>Text</strong>属性来获取提取的文本并将其显示出来。</li>
</ol>
</div>
## IronOCR:.NET OCR库
[IronOCR](/csharp/ocr/)是一个 .NET OCR NuGet 库,它使开发人员能够轻松地将光学字符识别 (OCR) 功能集成到他们的项目中。 使用 IronOCR,可以扫描 PDF 文档并将其转换为可搜索和可编辑的文本/数据,而不会损失任何数据质量。 这样一来,用户可以轻松地从 PDF 文档中找到所需的信息,并在必要时进行更改或更正。
IronOCR 是目前适用于所有平台的 Tesseract 二进制文件的最高版本。 它提供更高的速度、准确性和原生 DLL/API,只需一次简单的安装/下载即可支持所有版本的 Tesseract(从 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% 左右。 观看此[YouTube 视频,](https://www.youtube.com/watch?v=2QTEb6x8NJ4)了解更多关于 IronOCR 和 Tesseract 对比的信息和支持。
## 创建 OCR MAUI 应用的步骤
按照以下步骤,使用 IronOCR 在 .NET MAUI 框架中创建 OCR 应用程序。
### 前提条件
要在.NET MAUI中创建OCR应用程序,需要满足以下先决条件:
1. Visual Studio 2022(最新版本)
2. .NET 6 或 7
3. 在Visual Studio中安装的MAUI包
4. 一个在 Visual Studio 中运行的 .NET MAUI 项目
### 安装 IronOCR
第一步是使用 NuGet 包管理器控制台安装 IronOCR 库。 右键单击解决方案资源管理器,打开 NuGet 程序包管理器控制台,然后执行以下命令来安装 IronOCR 库:
```shell
:ProductInstall
```
### 前端设计
本节我们将设计应用程序的前端。 打开*MainPage.xaml*文件。
<div class="content-img-align-center">
<img src="/static-assets/ocr/how-to/net-maui-ocr-tutorial/net-maui-ocr-tutorial-1.webp" alt="使用 IronOCR 的 .NET MAUI OCR 教程 - 图 1:MainPage.xaml" class="img-responsive add-shadow" />
<p class="content__image-caption content-align">MainPage.xaml</p>
</div>
我们指定一个按钮,帮助我们选择要进行 OCR 识别的图像或 PDF 文档。 按钮的 `Clicked` 属性设置为执行 `IOCR` 函数,我们将在下一节中定义。
```xml
<Button
x:Name="OCR"
Text="Click to OCR"
Clicked="IOCR"
HorizontalOptions="Center" />
```
在这里,我们创建了一个名为 `OCRImage` 的 `Image` 元素。 此图像框将显示所选文件。
```xml
<Image
x:Name="OCRImage"
SemanticProperties.Description="Selected Image"
HeightRequest="300"
HorizontalOptions="Center" />
```
接下来,我们创建一个 `Editor` 控件。 它将用于显示从图像或 PDF 文档中提取的文本。
```xml
<Editor
x:Name="outputText"
HorizontalOptions="Center"
WidthRequest="600"
HeightRequest="300" />
```
以下是完整的 XAML 用户界面标记。
```xml
<?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` 类文件并编写以下函数:
<div class="content-img-align-center">
<img src="/static-assets/ocr/how-to/net-maui-ocr-tutorial/net-maui-ocr-tutorial-2.webp" alt="使用 IronOCR 的 .NET MAUI OCR 教程 - 图 2:MainPage.xaml.cs" class="img-responsive add-shadow" />
<p class="content__image-caption content-align">MainPage.xaml.cs</p>
</div>
```csharp
private async void IOCR(object sender, EventArgs e)
{
// Prompt user to select an image using FilePicker
var images = await FilePicker.Default.PickAsync(new PickOptions
{
PickerTitle = "Pick image",
FileTypes = FilePickerFileType.Images
});
// Get the full path of the selected image
var path = images.FullPath.ToString();
// Display the selected image in the Image control
OCRImage.Source = path;
// Create an IronTesseract object to perform OCR
var ocr = new IronTesseract();
// Perform OCR and extract text from the selected image
using (var input = new OcrInput())
{
input.AddImage(path); // Add image to the OCR input
OcrResult result = ocr.Read(input); // Perform OCR
string text = result.Text; // Extract text
// Display extracted text in the Editor control
outputText.Text = text;
}
}
```
让我们来分析一下上面的代码:
- 代码使用 `FilePicker` 允许用户从设备中选择一个图像文件。文件选择器配置为仅允许图像。
```csharp
var images = await FilePicker.Default.PickAsync(new PickOptions
{
PickerTitle = "Pick image",
FileTypes = FilePickerFileType.Images
});
var path = images.FullPath.ToString();
```
- `Image` 控件设置为使用其文件路径显示所选图像。
```csharp
OCRImage.Source = path;
```
- 创建一个 `IronTesseract` 对象以执行OCR。 所选图像被添加到一个 `OcrInput` 对象中。 调用 `Read` 方法从图像中提取文本,然后在 `Editor` 控件中显示。
```csharp
:path=/static-assets/ocr/content-code-examples/get-started/net-maui-ocr-tutorial-9.cs
```
## 输出
项目运行后,将显示以下用户界面。点击按钮后,系统会提示您从任意位置选择图像/PDF 文件。
<div class="content-img-align-center">
<img src="/static-assets/ocr/how-to/net-maui-ocr-tutorial/net-maui-ocr-tutorial-3.webp" alt=".NET MAUI OCR Tutorial Using IronOCR - Figure 3: OCR 输出" class="img-responsive add-shadow" />
<p class="content__image-caption content-align">OCR 输出</p>
</div>
选择图像后,IronOCR 会处理图像并在编辑器控件中显示识别出的单词。 您可以从编辑器控件复制文本。
<div class="content-img-align-center">
<img src="/static-assets/ocr/how-to/net-maui-ocr-tutorial/net-maui-ocr-tutorial-4.webp" alt=".NET MAUI OCR Tutorial Using IronOCR - Figure 4: OCR图像" class="img-responsive add-shadow" />
<p class="content__image-caption content-align">OCR图像</p>
</div>
结果表明,IronOCR 在处理具有图案的复杂图像方面表现出色,结果准确无误。 IronOCR 能够利用其预训练模型检测细微之处并选择所需的确切字母。
[[i:(Running the project in release mode with debugging attached might cause issues. 在这种情况下,您可以将项目发布为未打包的 .NET MAUI 应用程序(如下链接所示),以确保应用程序正常运行。)]]
## 结论
如需进一步阅读,请参阅本[教程](/csharp/ocr/tutorials/how-to-read-text-from-an-image-in-csharp-net/),其中提供了有关如何使用 IronOCR[从图像中读取文本的](/csharp/ocr/tutorials/how-to-read-text-from-an-image-in-csharp-net/)更多信息。
IronOCR 可免费用于开发目的。 您可以以非常低的价格购买它,从仅 `$liteLicense` 开始。 点击[此处](/csharp/ocr/licensing/)查看定价方案。
Ask ChatGPT about this page
Ask Gemini about this page
Ask Perplexity about this page
简介
微软发布了 .NET MAUI(多平台应用程序用户界面),这是一个使用 .NET Framework 构建跨平台应用程序的框架。 它允许您使用同一套代码库编写可在 Android、iOS 和 Windows 上运行的代码,从而节省您的时间、资源和精力。 .NET MAUI 是开源的。 您可以在GitHub 上获取 .NET MAUI 项目的源代码及示例。
在本操作指南中,我们将学习如何使用 IronOCR 库在 .NET MAUI 上创建 OCR 处理器应用程序,并附有示例。
IronOCR:.NET OCR库
IronOCR 是一个 .NET OCR NuGet 库,它使开发人员能够轻松地将光学字符识别 (OCR) 功能集成到他们的项目中。 使用 IronOCR,可以扫描 PDF 文档并将其转换为可搜索和可编辑的文本/数据,而不会损失任何数据质量。 这样一来,用户可以轻松地从 PDF 文档中找到所需的信息,并在必要时进行更改或更正。
IronOCR 是目前适用于所有平台的 Tesseract 二进制文件的最高版本。 它提供更高的速度、准确性和原生 DLL/API,只需一次简单的安装/下载即可支持所有版本的 Tesseract(从 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% 左右。 观看此YouTube 视频, 了解更多关于 IronOCR 和 Tesseract 对比的信息和支持。
创建 OCR MAUI 应用的步骤
按照以下步骤,使用 IronOCR 在 .NET MAUI 框架中创建 OCR 应用程序。
前提条件
要在.NET MAUI中创建OCR应用程序,需要满足以下先决条件:
Visual Studio 2022(最新版本)
.NET 6 或 7
在Visual Studio中安装的MAUI包
一个在 Visual Studio 中运行的 .NET MAUI 项目
安装 IronOCR
第一步是使用 NuGet 包管理器控制台安装 IronOCR 库。 右键单击解决方案资源管理器,打开 NuGet 程序包管理器控制台,然后执行以下命令来安装 IronOCR 库:
PM > Install-Package IronOcr
Install-Package IronOcr
前端设计
本节我们将设计应用程序的前端。 打开MainPage.xaml 文件。
MainPage.xaml
我们指定一个按钮,帮助我们选择要进行 OCR 识别的图像或 PDF 文档。 按钮的 Clicked 属性设置为执行 IOCR 函数,我们将在下一节中定义。
<Button
x:Name="OCR"
Text="Click to OCR"
Clicked="IOCR"
HorizontalOptions="Center" />
<Button
x:Name="OCR"
Text="Click to OCR"
Clicked="IOCR"
HorizontalOptions="Center" />
XML
在这里,我们创建了一个名为 OCRImage 的 Image 元素。 此图像框将显示所选文件。
<Image
x:Name="OCRImage"
SemanticProperties.Description="Selected Image"
HeightRequest="300"
HorizontalOptions="Center" />
<Image
x:Name="OCRImage"
SemanticProperties.Description="Selected Image"
HeightRequest="300"
HorizontalOptions="Center" />
XML
接下来,我们创建一个 Editor 控件。 它将用于显示从图像或 PDF 文档中提取的文本。
<Editor
x:Name="outputText"
HorizontalOptions="Center"
WidthRequest="600"
HeightRequest="300" />
<Editor
x:Name="outputText"
HorizontalOptions="Center"
WidthRequest="600"
HeightRequest="300" />
XML
以下是完整的 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>
<?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>
XML
现在,是时候编写 OCR 功能的代码了。
使用 IronOCR 的 OCR 代码
打开 MainPage.xaml.cs 类文件并编写以下函数:
MainPage.xaml.cs
private async void IOCR ( object sender, EventArgs e)
{
// Prompt user to select an image using FilePicker
var images = await FilePicker . Default . PickAsync ( new PickOptions
{
PickerTitle = "Pick image" ,
FileTypes = FilePickerFileType . Images
});
// Get the full path of the selected image
var path = images. FullPath . ToString ();
// Display the selected image in the Image control
OCRImage . Source = path;
// Create an IronTesseract object to perform OCR
var ocr = new IronTesseract ();
// Perform OCR and extract text from the selected image
using ( var input = new OcrInput ())
{
input. AddImage (path); // Add image to the OCR input
OcrResult result = ocr. Read (input); // Perform OCR
string text = result. Text ; // Extract text
// Display extracted text in the Editor control
outputText. Text = text;
}
} private async void IOCR(object sender, EventArgs e)
{
// Prompt user to select an image using FilePicker
var images = await FilePicker.Default.PickAsync(new PickOptions
{
PickerTitle = "Pick image",
FileTypes = FilePickerFileType.Images
});
// Get the full path of the selected image
var path = images.FullPath.ToString();
// Display the selected image in the Image control
OCRImage.Source = path;
// Create an IronTesseract object to perform OCR
var ocr = new IronTesseract();
// Perform OCR and extract text from the selected image
using (var input = new OcrInput())
{
input.AddImage(path); // Add image to the OCR input
OcrResult result = ocr.Read(input); // Perform OCR
string text = result.Text; // Extract text
// Display extracted text in the Editor control
outputText.Text = text;
}
}
Private Async Sub IOCR (sender As Object , e As EventArgs )
' Prompt user to select an image using FilePicker
Dim images = Await FilePicker . Default . PickAsync ( New PickOptions With {
. PickerTitle = "Pick image" ,
. FileTypes = FilePickerFileType . Images
})
' Get the full path of the selected image
Dim path = images. FullPath . ToString ()
' Display the selected image in the Image control
OCRImage . Source = path
' Create an IronTesseract object to perform OCR
Dim ocr = New IronTesseract ()
' Perform OCR and extract text from the selected image
Using input = New OcrInput ()
input. AddImage (path) ' Add image to the OCR input
Dim result As OcrResult = ocr. Read (input) ' Perform OCR
Dim text As String = result. Text ' Extract text
' Display extracted text in the Editor control
outputText. Text = text
End Using
End Sub Private Async Sub IOCR(sender As Object, e As EventArgs)
' Prompt user to select an image using FilePicker
Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
.PickerTitle = "Pick image",
.FileTypes = FilePickerFileType.Images
})
' Get the full path of the selected image
Dim path = images.FullPath.ToString()
' Display the selected image in the Image control
OCRImage.Source = path
' Create an IronTesseract object to perform OCR
Dim ocr = New IronTesseract()
' Perform OCR and extract text from the selected image
Using input = New OcrInput()
input.AddImage(path) ' Add image to the OCR input
Dim result As OcrResult = ocr.Read(input) ' Perform OCR
Dim text As String = result.Text ' Extract text
' Display extracted text in the Editor control
outputText.Text = text
End Using
End Sub
让我们来分析一下上面的代码:
代码使用 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 () Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
.PickerTitle = "Pick image",
.FileTypes = FilePickerFileType.Images
})
Dim path = images.FullPath.ToString()
Image 控件设置为使用其文件路径显示所选图像。
OCRImage . Source = path; OCRImage.Source = path;
OCRImage . Source = path OCRImage.Source = path
创建一个 IronTesseract 对象以执行OCR。 所选图像被添加到一个 OcrInput 对象中。 调用 Read 方法从图像中提取文本,然后在 Editor 控件中显示。
var ocr = new IronTesseract ();
using ( var input = new OcrInput ())
{
input. LoadImage (path);
OcrResult result = ocr. Read (input);
string text = result. Text ;
outputText. Text = text;
}
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
input.LoadImage(path);
OcrResult result = ocr.Read(input);
string text = result.Text;
outputText.Text = text;
}
C#
输出
项目运行后,将显示以下用户界面。点击按钮后,系统会提示您从任意位置选择图像/PDF 文件。
OCR 输出
选择图像后,IronOCR 会处理图像并在编辑器控件中显示识别出的单词。 您可以从编辑器控件复制文本。
OCR图像
结果表明,IronOCR 在处理具有图案的复杂图像方面表现出色,结果准确无误。 IronOCR 能够利用其预训练模型检测细微之处并选择所需的确切字母。
Running the project in release mode with debugging attached might cause issues. 在这种情况下,您可以将项目发布为未打包的 .NET MAUI 应用程序(如下链接所示),以确保应用程序正常运行。
结论
如需进一步阅读,请参阅本教程 ,其中提供了有关如何使用 IronOCR从图像中读取文本的 更多信息。
IronOCR 可免费用于开发目的。 您可以以非常低的价格购买它,从仅 $999 开始。 点击此处 查看定价方案。
常见问题解答 .NET MAUI(多平台应用程序 UI)用于构建具有单一代码库的跨平台应用程序,使开发者能够瞄准 Android、iOS 和 Windows 平台。
开发者可以在 .NET MAUI 应用程序中集成 IronOCR 执行 OCR,IronOCR 是一个 .NET OCR 库。IronOCR 可以将图像和 PDF 转换为可搜索和可编辑的文本。
要在 .NET MAUI 项目中设置 IronOCR,请通过 NuGet 安装 IronOCR 库,在 Visual Studio 中配置您的前端,并实现必要的 C# 代码以使用 IronTesseract 对象执行 OCR。
IronOCR 在处理文本时提供超过 99% 的高准确率,由于其先进的 AI 算法,使其比其他 OCR 解决方案(如 Tesseract)更可靠。
是的,IronOCR 支持 125 种国际语言,默认安装英语。其他语言可以通过 NuGet 添加或通过下载特定语言的 DLLs 添加。
在 .NET MAUI 应用程序中,可以使用 FilePicker 类选择用于 OCR 的图像文件,该类允许用户从设备中选择图像进行文本提取。
.NET MAUI 应用程序中的 Editor 控件用于显示通过 IronOCR 处理的图像中提取的文本,为用户提供查看 OCR 结果的界面。
IronOCR 可免费用于开发用途。然而,生产使用需要许可证,可以以有竞争力的价格获得。
IronOCR 是 C# 开发者的首选,因为它与 .NET 应用程序无缝集成,具有高准确性、速度,以及对多种语言的支持,使其优于许多其他 OCR 库。
开发者可以通过探索 IronOCR 提供的附加资源来增强他们的 .NET MAUI OCR 应用程序,利用其全面的文档和支持以实现先进功能。
技术作家
Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。
...
阅读更多