次の方法で共有


Windows アプリ SDKの AI ベースのテキスト認識 (OCR) の API リファレンス

重要

この機能はまだ使用できません。 Windows アプリ SDKの今後の体験チャネルリリースで出荷される予定です。

Windows アプリ SDK の実験的チャネルには、開発の初期段階にある API と機能が含まれています。 実験用チャネル内のすべての API は、広範な変更と破壊的変更の対象となり、今後のリリースからいつでも削除される可能性があります。 これらは運用環境での使用ではサポートされていません。また、実験的機能を使用するアプリを Microsoft Store に公開することはできません。

画像内のテキスト (文字、単語、線、多角形のテキスト境界、各一致の信頼度) を検出して抽出し、コンピューターで読み取り可能な文字ストリームに変換できる、人工知能 (AI) によってサポートされるWindows アプリ SDK API について説明します。

詳細については、Windows アプリ SDKの「Get Started with Text Recognition (OCR)」を参照してください。

ヒント

Windows アプリ SDK GitHub リポジトリに新しい Issue を作成して、これらの API とその機能に関するフィードバックを提供します。 (タイトルに OCR を含めるようにしてください!)


Microsoft.Windows.Vision namespace

画像のテキスト コンテンツを分析する機械学習モデルの API を提供します。

Microsoft.Windows.Vision.TextRecognition.BoundingBox struct

public struct BoundingBox

認識された単語とテキスト行の境界に使用される 4 つのポイントを持つ多角形。

フィールド

BottomLeft

境界ボックスの左下隅。

BottomRight

境界ボックスの右下隅。

TopLeft

境界ボックスの左上のポイント。

TopRight

境界ボックスの右上のポイント。

解説

単語または行の境界として返された場合、TopLeftTopRightBottomRight、および BottomLeft ポイントは、画像内で認識されたテキストの回転と傾斜を基準とします。 次の図は、0 が TopLeft、1 が TopRight、2 が BottomRight、3 が BottomLeft (すべてテキストを基準とする) であるさまざまなテキスト回転のポイント レイアウトを示しています。

テキストの回転に基づいてコーナー ポイントがどのように識別されるかを示す 三つの境界ボックス例の図。

Microsoft.Windows.Vision.DetectedLineStyle enum

public enum DetectedLineStyle

認識できる行のスタイルを指定します。

列挙型フィールド

Handwritten: 0

テキスト行は手書きです。

Other: 1

テキスト行は手書きではありません。

Microsoft.Windows.Vision.OrientationDetectionOptions enum

public enum OrientationDetectionOptions

認識できるテキストの向きを指定します。

列挙型フィールド

None: 0

向きが認識されません。

DetectOrientation: 1

向きが認識されます。

Microsoft.Windows.Vision.RecognizedLine class

public sealed class RecognizedLine

認識されたテキストの 一行を表します。

Microsoft.Windows.Vision.RecognizedLine.Style property

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

認識された行のスタイルを取得します。

プロパティ値

認識された行のスタイル。

解説

テキスト行が手書きであったかどうか、および認識の信頼度が含まれます。

Microsoft.Windows.Vision.RecognizedLine.Text property

public string Text { get; }

認識された行のテキストを取得します。

プロパティ値

認識された行のテキスト。

解説

すべての単語がスペースで連結されています。

Microsoft.Windows.Vision.RecognizedLine.Words property

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

認識された行の単語。

プロパティ値

認識された行の単語。

Microsoft.Windows.Vision.RecognizedLineStyle struct

public struct RecognizedLineStyle

認識された行のスタイルを表します。

構造体のフィールド

信頼度

行スタイル認識の信頼度レベル。

Name

行のスタイル名。

Microsoft.Windows.Vision.RecognizedText class

public sealed class RecognizedText

画像からテキストへの認識操作の結果を表します。

Microsoft.Windows.Vision.RecognizedText.ImageAngle property

public float ImageAngle { get; }

認識されたテキストの時計回りの回転角度を度単位で取得します。

プロパティ値

認識されたテキストの時計回りの回転角度 (度単位)。

Microsoft.Windows.Vision.RecognizedText.Lines property

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

認識された行のコレクションを取得します。

プロパティ値

認識された行のコレクション。

Microsoft.Windows.Vision.RecognizedWord class

public sealed class RecognizedWord

認識された ひとつの単語を表します。

Microsoft.Windows.Vision.RecognizedWord.BoundingBox property

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

認識された単語の四角形境界を取得します。

プロパティ値

認識された単語の四角形境界。 TopLeft は、単語の回転を基準にしています。

Microsoft.Windows.Vision.RecognizedWord.Confidence property

public float Confidence { get; }

この単語が正しく認識された可能性を取得します。

プロパティ値

この単語が正しく認識された可能性。 値の範囲は 0.0 から 1.0 (両端の値を含む) です。

Microsoft.Windows.Vision.RecognizedWord.Text property

public string Text { get; }

認識された単語のテキストを取得します。

プロパティ値

認識された単語のテキスト。

Microsoft.Windows.Vision.TextRecognition.TextRecognizer class

public sealed class TextRecognizer : System.IDisposable

ソース画像内の単語と行、およびその四角形の境界を認識します。

Microsoft.Windows.Vision.TextRecognizer.Close method

オブジェクトと関連付けられているリソースを破棄します。

解説

C# では実装されていません。

Microsoft.Windows.Vision.TextRecognizer.CreateAsync method

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

TextRecognizer クラスの新しいインスタンスを非同期的に作成します。

返品

TextRecognizer クラスの新しいインスタンス。

GetModelReadyStatus が Ready でない場合、エラーが返されます。

Microsoft.Windows.Vision.TextRecognizer.IsAvailable method

public static bool IsAvailable ();

基になる言語モデルがインストールされているかどうかを取得します。

返品

基になる言語モデルがインストールされている場合は True。 それ以外の場合は、 falseです。

Microsoft.Windows.Vision.TextRecognizer.MakeAvailableAsync method

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) method

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

指定された画像内のテキストを認識します。

パラメーター
imageBuffer

圧縮されていないビットマップ。

options

TextRecognizer のテキスト認識モデルを構成するためのオプション。

返品

認識されたテキスト。

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

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

指定された画像内のテキストを非同期的に認識します。

パラメーター
imageBuffer

圧縮されていないビットマップ。

options

TextRecognizer のテキスト認識モデルを構成するためのオプション。

返品

認識されたテキスト。

Microsoft.Windows.Vision.TextRecognizerOptions class

public sealed class TextRecognizerOptions

TextRecognizer のテキスト認識モデルを構成するためのオプションを提供します。

Microsoft.Windows.Vision.TextRecognizerOptions.MaxAnalysisSize property

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

最大画像サイズを取得または設定します。

プロパティ値

最大画像サイズ。 既定値は、幅 1152、高さ 768 です。

解説

このサイズは提案であり、常に優先されるとは限りません。

ソース画像が最大サイズより大きい場合は、自動的にサイズの上限に縮小されます。

Microsoft.Windows.Vision.TextRecognizerOptions.MaxLineCount property

public uint MaxLineCount { get; set; }

認識操作から返される行の最大数を取得または設定します。

プロパティ値

認識操作から返される行の最大数。

解説

既定値は MaxLineCountSupported です。 指定した場合、返される最大行数は、この値と MaxLineCountSupported の小さい方になります。

Microsoft.Windows.Vision.TextRecognizerOptions.OrientationDetection property

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

テキストの向きを検出するかどうかを取得または設定します。

プロパティ値

テキストの向きを検出するかどうか。 既定値は None です。

Microsoft.Windows.Vision.TextRecognizerOptions.#ctor constructor

public TextRecognizerOptions ();

TextRecognizerOptions クラスの新しいインスタンスを初期化します。


Microsoft.Windows.Imaging namespace

画像を操作する機械学習モデルの API を提供します。

Microsoft.Windows.Imaging.ImageBuffer class

public sealed class ImageBuffer : System.IDisposable

効率的なクロスプロセス マーシャリングのための圧縮されていないビットマップを表します。

解説

ImageBuffer は、画像データを必要とする TextRecognizer などの AI モデル API で使用できます。 一般的な使用法には、既存の SoftwareBitmap から ImageBuffer を作成することが含まれます。

Microsoft.Windows.Imaging.ImageBuffer.Buffer property

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

現在の画像バッファーを取得します。

プロパティ値

現在の画像バッファー。

Microsoft.Windows.Imaging.ImageBuffer.BufferLength property

public uint BufferLength { get; }

画像バッファーの長さを取得します。

プロパティ値

画像バッファーの長さ。

Microsoft.Windows.Imaging.ImageBuffer.Close method

オブジェクトと関連付けられているリソースを破棄します。

解説

C# では実装されていません。

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

public void CopyToBuffer (byte[] values);

指定されたターゲット バッファーに現在のバッファーをコピーします。

パラメーター

バッファー内のバイトのベクトル。

Microsoft.Windows.Imaging.ImageBuffer.CreateBufferAttachedToBitmap(Windows.Graphics.Imaging.SoftwareBitmap) method

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) method

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 method

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

ImageBuffer に格納されているピクセル データから、ピクセル タイプ BGRA32 の新しい SoftwareBitmap を作成します。

返品

ピクセル タイプ BGRA32 の新しい SoftwareBitmap。

Microsoft.Windows.Imaging.ImageBuffer.Height property

public uint Height { get; }

画像の高さをピクセル単位で取得します。

プロパティ値

画像の高さ (ピクセル単位)。

Microsoft.Windows.Imaging.ImageBuffer.#ctor(Windows.Storage.Streams.IBuffer, Microsoft.Windows.Imaging.PixelFormat, System.UInt32, System.UInt32) constructor

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 property

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

画像のピクセル形式を取得します。

プロパティ値

画像のピクセル形式。

Microsoft.Windows.Imaging.ImageBuffer.Width property

public uint Width { get; }

画像の幅をピクセル単位で取得します。

プロパティ値

画像の幅 (ピクセル単位)。

Microsoft.Windows.Imaging.PixelFormat enum

public enum PixelFormat

基になるビットマップ データのバイナリ レイアウトの種類を指定します。

列挙型フィールド

Undefined: 0

バイナリ形式は未定義です。

Rgb24: 1

バイナリ形式はピクセルあたり 24 ビットです。赤、緑、青のコンポーネントにそれぞれ 8 ビットが使用されます。

Argb32: 2

バイナリ形式はピクセルあたり 32 ビットです。アルファ、赤、緑、青のコンポーネントにそれぞれ 8 ビットが使用されます。

Rgba32: 3

バイナリ形式はピクセルあたり 32 ビットです。赤、緑、青、アルファのコンポーネントにそれぞれ 8 ビットが使用されます。 カラー コンポーネントは、赤、緑、青、アルファの順に格納されます。

Bgra32: 4

バイナリ形式はピクセルあたり 32 ビットです。青、緑、赤、アルファ のコンポーネントにそれぞれ 8 ビットが使用されます。 カラー コンポーネントは、青、緑、赤、アルファの順に格納されます。

Gray8: 5

バイナリ形式は、ピクセルあたり 16 ビットです。 このカラー情報は 65536 種類の灰色の濃淡を指定します。