本教程逐步讲解 WinForms 的 Windows AI API 示例 中包含的文本识别功能。 具体而言,它演示如何使用 Windows AI API 对图像执行文本识别并汇总已识别的文本。
先决条件
若要了解 Windows AI API 硬件要求以及如何将设备配置为使用 Windows AI API 成功生成应用,请参阅 开始使用 Windows AI API 构建应用。
介绍
MainForm.cs中的 MainForm 类是实现以下功能的 Windows AI API 示例应用的主要用户界面:
- 选择文件:允许用户从其文件系统中选择图像文件,并在 PictureBox 中显示该图像。
- 处理图像:处理所选图像以使用光学字符识别(OCR)提取文本,然后汇总提取的文本。
关键函数和事件处理程序
WinForms 的 Windows AI API 示例 中的一些更重要的函数和事件处理程序包括:
-
SelectFile_Click:为用户打开文件对话框以选择图像文件并显示所选图像。 -
ProcessButton_Click:处理所选图像的处理,包括加载 AI 模型、执行文本识别和汇总文本。 -
LoadAIModels:加载必要的 AI 模型(TextRecognizer 和 LanguageModel),以便进行文本识别和汇总。 -
PerformTextRecognition:使用 TextRecognizer 对所选图像执行 OCR 并提取文本。 此函数包含在以下 文本识别示例中。 -
SummarizeImageText:使用 LanguageModel 生成给定提示的提取文本的摘要。
文本识别示例
本例中的 PerformTextRecognition 函数
private async Task<string> PerformTextRecognition()
{
using TextRecognizer textRecognizer = await TextRecognizer.CreateAsync();
ImageBuffer? imageBuffer = await LoadImageBufferFromFileAsync(pathToImage);
if (imageBuffer == null)
{
throw new Exception("Failed to load image buffer.");
}
RecognizedText recognizedText =
textRecognizer!.RecognizeTextFromImage(imageBuffer);
var recognizedTextLines = recognizedText.Lines.Select(line => line.Text);
string text = string.Join(Environment.NewLine, recognizedTextLines);
richTextBoxForImageText.Text = text;
return text;
}
生成和运行示例
- 克隆 WindowsAppSDK-Samples 存储库。
- 切换到“release/experimental”分支。
- 导航到 Samples/WindowsAIFoundry/cs-winforms-pckg 文件夹。
- 在 Visual Studio 2022 中打开WindowsAISample.sln。
- 更改解决方案平台以匹配 Copilot+ 电脑的体系结构。
- 右键单击解决方案资源管理器中的解决方案,然后选择“生成”以生成解决方案。
- 生成成功后,右键单击解决方案资源管理器中的项目,然后选择“设置为启动项目”。
- 按 F5 或从“调试”菜单中选择“开始调试”以运行示例(也可以通过从调试菜单或 Ctrl+F5 中选择“启动而不调试”来运行示例)。