Windows 应用 SDK中 AI 支持的文本识别(OCR)的 API 参考

重要

此功能尚不可用。 预计它将在即将发布的Windows 应用 SDK实验频道发布中交付。

Windows 应用 SDK 试验通道包括早期开发阶段中的 API 和功能。 试验通道中的所有 API 都可能经过大量修订和中断性变更,并且随时可从后续版本中删除。 不支持在生产环境中使用这些通道,并且无法将使用试验功能的应用发布到 Microsoft Store。

了解由人工智能(AI)支持的Windows 应用 SDK API,它可以检测和提取图像中每个匹配的文本(字符、字词、行、多边形文本边界和置信度),并将其转换为计算机可读字符流。

有关详细信息,请参阅Windows 应用 SDK中的文本识别(OCR)入门。

提示

通过在 Windows 应用 SDK GitHub 存储库中创建新问题来提供有关这些 API 及其功能的反馈。 (请确保在 标题中包含 OCR


Microsoft.Windows.Vision 命名空间

为分析图像文本内容的机器学习模型提供 API。

Microsoft.Windows.Vision.TextRecognition.BoundingBox 结构

public struct BoundingBox

有 4 个点的多边形,用于已识别字词和文本行的边界。

字段

BottomLeft

范围框的左下角。

BottomRight

范围框的右下角。

TopLeft

范围框的左上角点。

TopRight

范围框的右上角点。

注解

作为字词或线条的边界返回时,TopLeftTopRightBottomRightBottomLeft 点相对于图像中已识别文本的旋转和倾斜。 下图显示了不同文本旋转的点布局,其中 0 是 TopLeft,1 是 TopRight,2 是 BottomRight,3 是 BottomLeft,都是相对于文本的。

三个范围框示例的关系图,显示了如何根据文本旋转标识角点。

Microsoft.Windows.Vision.DetectedLineStyle 枚举

public enum DetectedLineStyle

指定可识别的线型。

枚举字段

手写:0

文本行是手写的。

其他:1%

文本行不是手写的。

Microsoft.Windows.Vision.OrientationDetectionOptions 枚举

public enum OrientationDetectionOptions

指定可识别的文本方向。

枚举字段

None:0

无法识别方向。

DetectOrientation:1

已识别方向。

Microsoft.Windows.Vision.RecognizedLine 类

public sealed class RecognizedLine

表示单行已识别的文本。

Microsoft.Windows.Vision.RecognizedLine.Style 属性

public Microsoft.Windows.Vision.RecognizedLineStyle Style { get; }

获取已识别的线型。

属性值

已识别的线型。

注解

包括文本行是否手写,以及识别可信度级别。

Microsoft.Windows.Vision.RecognizedLine.Text 属性

public string Text { get; }

获取已识别行的文本。

属性值

已识别行的文本。

注解

所有字词都用空格连接。

Microsoft.Windows.Vision.RecognizedLine.Words 属性

public Microsoft.Windows.Vision.RecognizedWord[] Words { get; }

已识别行中的字词。

属性值

已识别行中的字词。

Microsoft.Windows.Vision.RecognizedLineStyle 结构

public struct RecognizedLineStyle

表示已识别行的样式。

结构字段

Confidence

线型识别的可信度。

名称

线型名称。

Microsoft.Windows.Vision.RecognizedText 类

public sealed class RecognizedText

表示图像到文本识别操作的结果。

Microsoft.Windows.Vision.RecognizedText.ImageAngle 属性

public float ImageAngle { get; }

获取已识别文本的顺时针旋转角度(以度为单位)。

属性值

已识别文本的顺时针旋转角度(以度为单位)。

Microsoft.Windows.Vision.RecognizedText.Lines 属性

public Microsoft.Windows.Vision.RecognizedLine[] Lines { get; }

获取已识别行的集合。

属性值

已识别行的集合。

Microsoft.Windows.Vision.RecognizedWord 类

public sealed class RecognizedWord

表示单个已识别的字词。

Microsoft.Windows.Vision.RecognizedWord.BoundingBox 属性

public Microsoft.Windows.Vision.BoundingBox BoundingBox { get; }

获取已识别字词的四边边界。

属性值

已识别字词的四边边界。 TopLeft 相对于字词的旋转。

Microsoft.Windows.Vision.RecognizedWord.Confidence 属性

public float Confidence { get; }

获取正确识别此单词的可能性。

属性值

哇,此字词可能被正确识别。 值范围可以是 0.0 到 1.0(含)。

Microsoft.Windows.Vision.RecognizedWord.Text 属性

public string Text { get; }

获取已识别字词的文本。

属性值

已识别字词的文本。

Microsoft.Windows.Vision.TextRecognition.TextRecognizer 类

public sealed class TextRecognizer : System.IDisposable

识别源图像中的字词和行及其四边边界。

Microsoft.Windows.Vision.TextRecognizer.Close 方法

释放对象和关联的资源。

注解

未在 C# 中实现。

Microsoft.Windows.Vision.TextRecognizer.CreateAsync 方法

public static Windows.Foundation.IAsyncOperation<Microsoft.Windows.Vision.TextRecognizer> CreateAsync ();

异步创建 TextRecognizer 类的新实例。

返回

TextRecognizer 类的新实例。

如果 GetModelReadyStatus 未就绪,则会返回错误。

Microsoft.Windows.Vision.TextRecognizer.IsAvailable 方法

public static bool IsAvailable ();

检索是否已安装底层语言模型。

返回

如果安装了底层语言模型,则 True。 否则为 false。

Microsoft.Windows.Vision.TextRecognizer.MakeAvailableAsync 方法

public static Windows.Foundation.IAsyncOperationWithProgress<Microsoft.Windows.Management.Deployment.PackageDeploymentResult, 
Microsoft.Windows.Management.Deployment.PackageDeploymentProgress> MakeAvailableAsync ();

请确保已安装底层语言模型并可供使用。

返回

具有进度的异步操作,该操作在完成时返回 PackageDeploymentResult

Microsoft.Windows.Vision.TextRecognizer.RecognizeTextFromImage(Microsoft.Windows.Imaging.ImageBuffer,Microsoft.Windows.Vision.TextRecognizerOptions) 方法

public Microsoft.Windows.Vision.RecognizedText RecognizeTextFromImage (Microsoft.Windows.Imaging.ImageBuffer imageBuffer, 
Microsoft.Windows.Vision.TextRecognizerOptions options);

识别所提供图像中的文本。

参数
imageBuffer

未压缩的位图。

选项

用于为 TextRecognizer 配置文本识别模型的选项。

返回

已识别的文本。

Microsoft.Windows.Vision.TextRecognizer.RecognizeTextFromImageAsync(Microsoft.Windows.Imaging.ImageBuffer,Microsoft.Windows.Vision.TextRecognizerOptions) 方法

public Windows.Foundation.IAsyncOperation<Microsoft.Windows.Vision.RecognizedText> RecognizeTextFromImageAsync (Microsoft.Windows.Imaging.ImageBuffer imageBuffer, 
Microsoft.Windows.Vision.TextRecognizerOptions options);

异步识别所提供图像中的文本。

参数
imageBuffer

未压缩的位图。

选项

用于为 TextRecognizer 配置文本识别模型的选项。

返回

已识别的文本。

Microsoft.Windows.Vision.TextRecognizerOptions 类

public sealed class TextRecognizerOptions

提供用于为 TextRecognizer 配置文本识别模型的选项。

Microsoft.Windows.Vision.TextRecognizerOptions.MaxAnalysisSize 属性

public Windows.Graphics.SizeInt32 MaxAnalysisSize { get; set; }

获取或设置图像的最大大小。

属性值

最大图像大小。 默认值为宽度 1152 和高度 768。

注解

此大小是建议,可能并不总是被遵循。

如果源图像大于最大大小,则它将自动缩减为最大大小。

Microsoft.Windows.Vision.TextRecognizerOptions.MaxLineCount 属性

public uint MaxLineCount { get; set; }

获取或设置从识别操作返回的最大行数。

属性值

从识别操作返回的最大行数。

注解

默认为 MaxLineCountSupported。 如果指定,则返回的最大行数将取该值和 MaxLineCountSupported 中的较小者。

Microsoft.Windows.Vision.TextRecognizerOptions.OrientationDetection 属性

public Microsoft.Windows.Vision.OrientationDetectionOptions OrientationDetection { get; set; }

获取或设置是否检测文本方向。

属性值

是否检测文本方向。 默认值为无。

Microsoft.Windows.Vision.TextRecognizerOptions.#ctor 构造函数

public TextRecognizerOptions ();

初始化 TextRecognizerOptions 类的新实例。


Microsoft.Windows.Imaging 命名空间

为处理图像的机器学习模型提供 API。

Microsoft.Windows.Imaging.ImageBuffer 类

public sealed class ImageBuffer : System.IDisposable

表示用于高效跨进程封送处理的解压缩位图。

注解

ImageBuffer 可与需要图像数据的 AI 模型 API(例如 TextRecognizer)搭配使用。 典型用法涉及从现有的 SoftwareBitmap 创建 ImageBuffer。

Microsoft.Windows.Imaging.ImageBuffer.Buffer 属性

public Windows.Storage.Streams.IBuffer Buffer { get; }

获取当前图像缓冲区。

属性值

当前图像缓冲区。

Microsoft.Windows.Imaging.ImageBuffer.BufferLength 属性

public uint BufferLength { get; }

获取图像缓冲区的长度。

属性值

图像缓冲区的长度。

Microsoft.Windows.Imaging.ImageBuffer.Close 方法

释放对象和关联的资源。

注解

未在 C# 中实现。

Microsoft.Windows.Imaging.ImageBuffer.CopyToBuffer(System.Byte[]) 方法

public void CopyToBuffer (byte[] values);

将当前缓冲区复制到所提供的目标缓冲区。

参数

缓冲区中字节的向量。

Microsoft.Windows.Imaging.ImageBuffer.CreateBufferAttachedToBitmap(Windows.Graphics.Imaging.SoftwareBitmap) 方法

public static Microsoft.Windows.Imaging.ImageBuffer CreateBufferAttachedToBitmap (Windows.Graphics.Imaging.SoftwareBitmap softwareBitmap);

通过从位图对象获取 IMemoryBufferReference,从现有的 SotftwareBitmap 创建新的 ImageBuffer。

参数
softwareBitmap

要从中创建 ImageBuffer 的 SotftwareBitmap。

返回

如果 ImageBuffer 为不受支持的格式,则为 Null。

注解

SoftwareBitmap 将被锁定,直到异步操作完成,新的 ImageBuffer 被销毁。

Microsoft.Windows.Imaging.ImageBuffer.CreateCopyFromBitmap(Windows.Graphics.Imaging.SoftwareBitmap) 方法

public static Microsoft.Windows.Imaging.ImageBuffer CreateCopyFromBitmap (Windows.Graphics.Imaging.SoftwareBitmap softwareBitmap);

通过复制底层位图数据,从现有的 SotftwareBitmap 创建新的 ImageBuffer。

参数
softwareBitmap

要从中创建 ImageBuffer 的 SotftwareBitmap。

返回

如果 ImageBuffer 为不受支持的格式,则为 Null。

注解

SoftwareBitmap 将被锁定,直到异步操作完成,新的 ImageBuffer 被销毁。

Microsoft.Windows.Imaging.ImageBuffer.CreateSoftwareBitmap 方法

public Windows.Graphics.Imaging.SoftwareBitmap CreateSoftwareBitmap ();

从 ImageBuffer 中存储的像素数据创建新的像素类型 BGRA32 的 SoftwareBitmap。

返回

像素类型 BGRA32 的新 SoftwareBitmap。

Microsoft.Windows.Imaging.ImageBuffer.Height 属性

public uint Height { get; }

获取图像的高度(以像素为单位)。

属性值

图像的高度(以像素为单位)。

Microsoft.Windows.Imaging.ImageBuffer.#ctor(Windows.Storage.Streams.IBuffer,Microsoft.Windows.Imaging.PixelFormat,System.UInt32,System.UInt32) 构造函数

public ImageBuffer (Windows.Storage.Streams.IBuffer buffer, 
Microsoft.Windows.Imaging.PixelFormat pixelFormat, uint width, uint height);

初始化 ImageBuffer 类的新实例。

参数
buffer

ImageBuffer。

pixelFormat

图像的像素格式。

width

图像的宽度(以像素为单位)。

height

图像的高度(以像素为单位)。

Microsoft.Windows.Imaging.ImageBuffer.PixelFormat 属性

public Microsoft.Windows.Imaging.PixelFormat PixelFormat { get; }

获取图像的像素格式。

属性值

图像的像素格式。

Microsoft.Windows.Imaging.ImageBuffer.Width 属性

public uint Width { get; }

获取图像的宽度(以像素为单位)。

属性值

图像的宽度(以像素为单位)。

Microsoft.Windows.Imaging.PixelFormat 枚举

public enum PixelFormat

指定底层位图数据的二进制布局类型。

枚举字段

未定义:0

未定义二进制格式。

Rgb24:1

二进制格式为每像素 24 位;红色、绿色和蓝色组件各使用 8 位。

Argb32:2

二进制格式为每像素 32 位;alpha、红色、绿色和蓝色组件各使用 8 位。

Rgba32:3

二进制格式为每像素 32 位;红色、绿色、蓝色和 alpha 组件各使用 8 位。 颜色组件按红色、绿色、蓝色和 alpha 的顺序存储。

Bgra32:4

二进制格式为每像素 32 位;蓝色、绿色、红色和 alpha 组件各使用 8 位。 颜色组件按蓝色、绿色、红色和 alpha 的顺序存储。

Gray8:5

二进制格式为每像素 16 位。 颜色信息指定 65536 种灰色阴影。