使用 IronOCR 的 .NET MAUI OCR
简介
微软发布了 .NET MAUI(多平台应用程序用户界面),这是一个使用 .NET Framework 构建跨平台应用程序的框架。 它允许您使用同一套代码库编写可在 Android、iOS 和 Windows 上运行的代码,从而节省您的时间、资源和精力。 .NET MAUI 是开源的。 您可以在GitHub上获取 .NET MAUI 项目的源代码及示例。
在本操作指南中,我们将学习如何使用 IronOCR 库在 .NET MAUI 上创建 OCR 处理器应用程序,并附有示例。
如何在 .NET MAUI 中执行 OCR
- 下载用于在 .NET MAUI 中执行 OCR 的 C# 库
- 配置 MAUI 项目的前端
- 使用FilePicker类传递图像的完整路径
- 调用
Read方法对图像执行 OCR 识别。 - 通过访问Text属性来获取提取的文本并将其显示出来。
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 库:
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" />在这里,我们创建一个名为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" />接下来,我们创建一个Editor控件。 它将用于显示从图像或 PDF 文档中提取的文本。
<Editor
x:Name="outputText"
HorizontalOptions="Center"
WidthRequest="600"
HeightRequest="300" /><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><?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类文件,并编写以下函数:

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(ByVal sender As Object, ByVal 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()Image控件设置为使用文件路径显示选定的图像。
OCRImage.Source = path;OCRImage.Source = path;OCRImage.Source = path- 创建一个
IronTesseract对象来执行 OCR。 将选定的图像添加到OcrInput对象中。 调用Read方法从图像中提取文本,然后在Editor控件中显示该文本。
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 文件。

OCR 输出
选择图像后,IronOCR 会处理图像并在编辑器控件中显示识别出的单词。 您可以从编辑器控件复制文本。

OCR图像
结果表明,IronOCR 在处理具有图案的复杂图像方面表现出色,结果准确无误。 IronOCR 能够利用其预训练模型检测细微之处并选择所需的确切字母。
<{i:(在发布模式下运行项目并附加调试功能可能会导致问题。 在这种情况下,您可以将项目发布为未打包的 .NET MAUI 应用程序(如下链接所示),以确保应用程序正常运行。
结论
如需进一步阅读,请参阅本教程,其中提供了有关如何使用 IronOCR从图像中读取文本的更多信息。
IronOCR 可免费用于开发目的。 您可以以非常低的价格购买,起价仅为$799 。 点击此处查看定价方案。
常见问题解答
.NET MAUI 在应用程序开发中用于什么?
.NET MAUI(多平台应用程序 UI)用于构建具有单一代码库的跨平台应用程序,使开发者能够瞄准 Android、iOS 和 Windows 平台。
开发者如何在 .NET MAUI 应用程序中执行 OCR?
开发者可以在 .NET MAUI 应用程序中集成 IronOCR 执行 OCR,IronOCR 是一个 .NET OCR 库。IronOCR 可以将图像和 PDF 转换为可搜索和可编辑的文本。
在 .NET MAUI 项目中设置 IronOCR 的步骤是什么?
要在 .NET MAUI 项目中设置 IronOCR,请通过 NuGet 安装 IronOCR 库,在 Visual Studio 中配置您的前端,并实现必要的 C# 代码以使用 IronTesseract 对象执行 OCR。
IronOCR 处理文本时的准确度如何?
IronOCR 在处理文本时提供超过 99% 的高准确率,由于其先进的 AI 算法,使其比其他 OCR 解决方案(如 Tesseract)更可靠。
IronOCR 能处理多种语言吗?
是的,IronOCR 支持 125 种国际语言,默认安装英语。其他语言可以通过 NuGet 添加或通过下载特定语言的 DLLs 添加。
如何在 .NET MAUI 应用程序中选择用于 OCR 的图像文件?
在 .NET MAUI 应用程序中,可以使用 FilePicker 类选择用于 OCR 的图像文件,该类允许用户从设备中选择图像进行文本提取。
Editor 控件在显示 OCR 结果中的作用是什么?
.NET MAUI 应用程序中的 Editor 控件用于显示通过 IronOCR 处理的图像中提取的文本,为用户提供查看 OCR 结果的界面。
使用 IronOCR 进行开发是否需要花费?
IronOCR 可免费用于开发用途。然而,生产使用需要许可证,可以以有竞争力的价格获得。
是什么让 IronOCR 成为 C# 开发人员的首选?
IronOCR 是 C# 开发者的首选,因为它与 .NET 应用程序无缝集成,具有高准确性、速度,以及对多种语言的支持,使其优于许多其他 OCR 库。
开发者如何增强他们的 .NET MAUI OCR 应用程序的功能?
开发者可以通过探索 IronOCR 提供的附加资源来增强他们的 .NET MAUI OCR 应用程序,利用其全面的文档和支持以实现先进功能。







