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
范围框的右上角点。
注解
作为字词或线条的边界返回时,TopLeft、TopRight、BottomRight 和 BottomLeft 点相对于图像中已识别文本的旋转和倾斜。 下图显示了不同文本旋转的点布局,其中 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 种灰色阴影。
相关内容
- 在 Windows 上开发负责任的生成式 AI 应用和功能
- Windows 应用 SDK中的文本识别(OCR)入门
- Windows 应用 SDK
- Windows 应用 SDK 的最新发行说明