Windows 应用 SDK 中的文本识别 API 参考

了解 Windows 应用 SDK 附带的新人工智能 (AI) 文本识别 API,这些 API 可用于识别图像中的字符、识别字词、线条、多边形边界,并为生成的匹配项提供可信度。

有关详细信息,请参阅 Windows 应用 SDK中的文本识别

重要

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


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

表示已识别行的样式。

结构字段

置信度

线型识别的可信度。

名称

线型名称。

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 种灰色阴影。