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.
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.