使用 IronOCR 实现 .NET MAUI OCR
简介
微软发布 .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。 (从宇宙魔方 3 到宇宙魔方 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 应用程序,有一些先决条件。
1.Visual Studio 2022 (最新版本)
- .NET 6 或 7
3.在 Visual Studio 中安装 MAUI 软件包
4.在 Visual Studio 中运行的 .NET MAUI 项目
安装 IronOCR
第一步是使用 NuGet Packages Manager Console 安装 IronOCR 库。右键单击解决方案资源管理器,打开 NuGet 包管理控制台,然后编写以下命令安装 IronOCR 库。
Install-Package IronOcr
前端设计
我们将在本节中设计应用程序的前端。打开 MainPage.xaml 文件。
我们指定一个按钮,帮助我们选择图像或 PDF 文档进行 OCR 识别。按钮的 clicked
属性被设置为执行 IOCR
函数。我们将在下一节中定义该函数。
<Button
x:Name="OCR"
Text="Click to OCR"
Clicked="IOCR"
HorizontalOptions="Center" />
在此,我们将创建一个名为 "OCRImage "的 "图像 "框。该图像框将有助于显示所选文件。
<Image
x:Name="OCRImage"
SemanticProperties.Description="Selected Image"
HeightRequest="300"
HorizontalOptions="Center" />
接下来,我们创建一个 "编辑器 "控件。它将用于显示从图像或 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
对象选取图片。文件选取器 "标题和 "文件选取器 "文件类型以及图像路径都被设置为值。
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()
接下来,"图像 "框控件将被配置为使用上述 "路径 "变量中指定的图像。
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 起的超低价格购买它。查看定价计划 这里.