Compartilhar via


Referência de API para OCR (Reconhecimento de Texto) com suporte de IA no SDK do Aplicativo Windows

Importante

Esse recurso ainda não está disponível. Espera-se que ele seja enviado em uma próxima versão de canal experimental do SDK do Aplicativo Windows.

O canal experimental do SDK do Aplicativo Windows inclui APIs e recursos em estágios iniciais de desenvolvimento. Todas as APIs no canal experimental estão sujeitas a extensas revisões e alterações interruptivas, podendo ser removidas de versões subsequentes a qualquer momento. Elas não são compatíveis com o uso em ambientes de produção e os aplicativos que usam os recursos experimentais não podem ser publicados na Microsoft Store.

Saiba mais sobre as APIs SDK do Aplicativo Windows, apoiadas por IA (inteligência artificial), que podem detectar e extrair texto (caracteres, palavras, linhas, limites de texto poligonais e níveis de confiança para cada correspondência) em imagens e convertê-lo em fluxos de caracteres legíveis por computador.

Para obter mais detalhes, consulte Introdução ao OCR (reconhecimento de texto) no SDK do Aplicativo Windows.

Dica

Forneça comentários sobre essas APIs e sua funcionalidade criando um novo Problema no repositório GitHub SDK do Aplicativo Windows. (Certifique-se de incluir OCR no título!)


Namespace Microsoft.Windows.Vision

Fornece APIs para modelos de aprendizado de máquina que analisam o conteúdo textual de imagens.

Estrutura Microsoft.Windows.Vision.TextRecognition.BoundingBox

public struct BoundingBox

Um polígono com 4 pontos usados para o limite de palavras reconhecidas e linhas de texto.

Fields

bottomLeft

O canto inferior esquerdo do .

bottomRight

O canto inferior direito da caixa delimitadora.

topLeft

O ponto superior esquerdo da caixa delimitadora.

topRight

O ponto superior direito da caixa delimitadora.

Comentários

Quando retornados como um limite para uma palavra ou linha, os pontos TopLeft, TopRight, BottomRight e BottomLeft são relativos à rotação e inclinação do texto reconhecido na imagem. O diagrama a seguir mostra o layout de ponto para diferentes rotações de texto em que 0 é TopLeft, 1 é TopRight, 2 é BottomRight e 3 é BottomLeft, todos relativos ao texto.

Diagrama de três exemplos de caixas delimitadoras mostrando como os pontos de canto são identificados com base na rotação do texto.

Enum. Microsoft.Windows.Vision.DetectedLineStyle

public enum DetectedLineStyle

Especifica os estilos de linha que podem ser reconhecidos.

Campos enum

Manuscrito

A linha de texto é escrita à mão.

Outros 1%

A linha de texto não é escrita à mão.

Enum. Microsoft.Windows.Vision.OrientationDetectionOptions

public enum OrientationDetectionOptions

Especifica as orientações de texto que podem ser reconhecidas.

Campos enum

Nenhuma = 0

A orientação não é reconhecida.

detectOrientation:

A orientação é reconhecida.

Propriedade Microsoft.Windows.Vision.RecognizedLine

public sealed class RecognizedLine

Representa uma única linha de texto reconhecido.

Propriedade Microsoft.Windows.Vision.RecognizedLine.Style

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

Obtém o estilo de linha reconhecido.

Valor da propriedade

o estilo de linha reconhecido.

Comentários

Inclui se a linha de texto foi manuscrita ou não e o nível de confiança de reconhecimento.

Propriedade Microsoft.Windows.Vision.RecognizedLine.Text

public string Text { get; }

Obtém o texto da linha reconhecida.

Valor da propriedade

O texto da linha reconhecida.

Comentários

Todas as palavras concatenadas com espaços.

Propriedade Microsoft.Windows.Vision.RecognizedLine.Words

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

As palavras na linha reconhecida.

Valor da propriedade

As palavras na linha reconhecida.

Estrutura Microsoft.Windows.Vision.RecognizedLineStyle

public struct RecognizedLineStyle

Representa o estilo da linha reconhecida.

campo struct

Confiança

O nível de confiança do reconhecimento de estilo de linha.

Nome

O nome do estilo de linha.

Classe Microsoft.Windows.Vision.RecognizedText

public sealed class RecognizedText

Representa o resultado de uma operação de reconhecimento de imagem para texto.

Propriedade Microsoft.Windows.Vision.RecognizedText.ImageAngle

public float ImageAngle { get; }

Obtém o ângulo de rotação no sentido horário do texto reconhecido em graus.

Valor da propriedade

O ângulo, em graus, da rotação no sentido horário.

Propriedade Microsoft.Windows.Vision.RecognizedText.Lines

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

Obtém a coleção de linhas reconhecidas.

Valor da propriedade

A coleção de linhas reconhecidas.

Classe Microsoft.Windows.Vision.RecognizedWord

public sealed class RecognizedWord

Representa uma única palavra reconhecida.

Propriedade Microsoft.Windows.Vision.RecognizedWord.BoundingBox

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

Obtém o limite quadrilátero da palavra reconhecida.

Valor da propriedade

O limite quadrilátero da palavra reconhecida. TopLeft é relativo à rotação da palavra.

PropriedadeMicrosoft.Windows.Vision.RecognizedWord.Confidence

public float Confidence { get; }

Obtém a probabilidade de que essa palavra tenha sido reconhecida corretamente.

Valor da propriedade

Uau provavelmente esta palavra foi reconhecida corretamente. O valor varia de 0,0 a 1,0, inclusive.

Propriedade Microsoft.Windows.Vision.RecognizedWord.Text

public string Text { get; }

Obtém o texto da palavra reconhecida.

Valor da propriedade

O texto da palavra reconhecida.

Classe Microsoft.Windows.Vision.TextRecognition.TextRecognizer

public sealed class TextRecognizer : System.IDisposable

Reconhece palavras e linhas, e seus limites quadriláteros, em uma imagem de origem.

Método Microsoft.Windows.Vision.TextRecognizer.Close

Descarta o objeto e os recursos associados.

Comentários

Não implementado em C#.

Método Microsoft.Windows.Vision.TextRecognizer.CreateAsync

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

Cria de forma assíncrona uma nova instância da classe TextRecognizer.

Devoluções

Uma nova instância da classe TextRecognizer.

Isso retornará um erro se GetModelReadyStatus não estiver pronto.

Método Microsoft.Windows.Vision.TextRecognizer.IsAvailable

public static bool IsAvailable ();

Recupera se o modelo de idioma subjacente está instalado.

Devoluções

True se o modelo de idioma subjacente estiver instalado. Caso contrário, false.

Método Microsoft.Windows.Vision.TextRecognizer.MakeAvailableAsync

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

Garante que o modelo de idioma subjacente esteja instalado e disponível para uso.

Devoluções

Uma ação assíncrona com progresso que retorna um PackageDeploymentResult na conclusão.

Método 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);

Reconheça o texto na imagem fornecida.

Parâmetros
imageBuffer

Um bitmap não compactado.

opções

Opções para configurar o modelo de reconhecimento de texto para o TextRecognizer.

Devoluções

O texto reconhecido.

Método 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);

Reconhecer texto de forma assíncrona na imagem fornecida.

Parâmetros
imageBuffer

Um bitmap não compactado.

opções

Opções para configurar o modelo de reconhecimento de texto para o TextRecognizer.

Devoluções

O texto reconhecido.

Classe Microsoft.Windows.Vision.TextRecognizerOptions

public sealed class TextRecognizerOptions

Fornece opções para configurar o modelo de reconhecimento de texto para um TextRecognizer.

Propriedade Microsoft.Windows.Vision.TextRecognizerOptions.MaxAnalysisSize

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

Obtém ou define o tamanho máximo de falha.

Valor da propriedade

Tamanho máximo da imagem. O valor padrão é 1152 de largura e 768 de altura.

Comentários

Esse tamanho é uma sugestão, e nem sempre pode ser honrado.

Se a imagem de origem for maior do que o tamanho máximo, ela será automaticamente reduzida para os limites de tamanho superiores.

Propriedade Microsoft.Windows.Vision.TextRecognizerOptions.MaxLineCount

public uint MaxLineCount { get; set; }

Obtém ou define o número máximo de linhas a serem retornadas da operação de reconhecimento.

Valor da propriedade

O número máximo de linhas a serem retornadas da operação de reconhecimento.

Comentários

O padrão é MaxLineCountSupported. Se especificado, o máximo de linhas retornadas será o menor desse valor e MaxLineCountSupported.

Propriedade Microsoft.Windows.Vision.TextRecognizerOptions.OrientationDetection

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

Obtém ou define a orientação do texto.

Valor da propriedade

Se a orientação do texto deve ser detectada. O valor padrão é None.

Constructor Microsoft.Windows.Vision.TextRecognizerOptions.#ctor

public TextRecognizerOptions ();

Inicializa uma nova instância da classe usando o texto fornecido.


Namespace Microsoft.Windows.Imaging

Fornece APIs para modelos de aprendizado de máquina que manipulam imagens.

Classe Microsoft.Windows.Imaging.ImageBuffer

public sealed class ImageBuffer : System.IDisposable

Representa um bitmap não compactado para empacotamento eficiente entre processos.

Comentários

O ImageBuffer pode ser usado com APIs de modelo de IA, como TextRecognizer, que exigem dados de imagem. O uso típico envolve a criação de um ImageBuffer a partir de um SoftwareBitmap existente.

Propriedade Microsoft.Windows.Imaging.ImageBuffer.Buffer

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

Obtém o buffer de imagem atual.

Valor da propriedade

O buffer de imagem atual.

Propriedade Microsoft.Windows.Imaging.ImageBuffer.BufferLength

public uint BufferLength { get; }

Obtém o comprimento do buffer de imagem.

Valor da propriedade

O tamanho do buffer ().

Método Microsoft.Windows.Imaging.ImageBuffer.Close

Descarta o objeto e os recursos associados.

Comentários

Não implementado em C#.

Método Microsoft.Windows.Imaging.ImageBuffer.CopyToBuffer(System.Byte[])

public void CopyToBuffer (byte[] values);

Copia o buffer atual para o buffer de destino fornecido.

Parâmetros
valores

Comprimento do buffer em bytes.

Método Microsoft.Windows.Imaging.ImageBuffer.CreateBufferAttachedToBitmap(Windows.Graphics.Imaging.SoftwareBitmap)

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

Crie um novo ImageBuffer de um SotftwareBitmap existente obtendo um IMemoryBufferReference do objeto bitmap.

Parâmetros
softwareBitmap

O SotftwareBitmap para criar o ImageBuffer de.

Devoluções

O ImageBuffer ou null se for um formato sem suporte.

Comentários

O SoftwareBitmap é bloqueado até que a operação assíncrona seja concluída e o novo ImageBuffer seja destruído.

Método Microsoft.Windows.Imaging.ImageBuffer.CreateCopyFromBitmap(Windows.Graphics.Imaging.SoftwareBitmap)

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

Crie um novo ImageBuffer a partir de um SotftwareBitmap existente copiando os dados de bitmap subjacentes.

Parâmetros
softwareBitmap

O SotftwareBitmap para criar o ImageBuffer de.

Devoluções

O ImageBuffer ou null se for um formato sem suporte.

Comentários

O SoftwareBitmap é bloqueado até que a operação assíncrona seja concluída e o novo ImageBuffer seja destruído.

Método Microsoft.Windows.Imaging.ImageBuffer.CreateSoftwareBitmap

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

Crie um novo SoftwareBitmap do tipo de pixel BGRA32 a partir dos dados de pixel armazenados em um ImageBuffer.

Devoluções

O novo SoftwareBitmap do tipo de pixel BGRA32.

Propriedade Microsoft.Windows.Imaging.ImageBuffer.Height

public uint Height { get; }

Obtém altura da imagem em pixels.

Valor da propriedade

A altura da imagem em pixels.

Constructor 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);

Inicializa uma nova instância da classe ImageCell.

Parâmetros
Buffer

O ImageBuffer.

PixelFormat

O formato de pixel da imagem.

width

A largura da imagem em pixels.

altura

A altura da imagem em pixels.

Propriedade Microsoft.Windows.Imaging.ImageBuffer.PixelFormat

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

Obtém o formato de pixel da imagem.

Valor da propriedade

O formato de pixel da imagem.

Propriedade Microsoft.Windows.Imaging.ImageBuffer.Width

public uint Width { get; }

Obtém a largura da imagem em pixels.

Valor da propriedade

A largura da imagem em pixels.

Enum. Microsoft.Windows.Imaging.PixelFormat

public enum PixelFormat

Especifica os tipos de layouts binários para os dados de bitmap subjacentes.

Campos enum

Undefined (0)

O formato binário é indefinido.

Rgb24: 1

Especifica que o formato é 24 bits por pixel; 8 bits são usados para os componentes vermelho, verde e azul.

Argb32: 2

Especifica que o formato é 32 bits por pixel; 8 bits são usados para os componentes alfa, vermelho, verde e azul.

Rgba32: 3

Especifica que o formato é 32 bits por pixel; 8 bits são usados para os componentes alfa, vermelho, verde e azul. Os componentes de cor são armazenados em vermelho, verde, azul e ordem alfa.

Bgra32: 4

Especifica que o formato é 32 bits por pixel; 8 bits são usados para os componentes alfa, vermelho, verde e azul. Os componentes de cor são armazenados em ordem azul, verde, vermelha e alfa.

Gray8: 5

O formato de pixel é de 16 bits por pixel. As informações de cores especificam 65.536 tons de cinza.