Como Converter Imagem em Texto de Documentos Especializados em C# com IronOCR
Converter imagem em texto de documentos específicos, como textos padrão, placas de veículos, passaportes e fotos, e realizar a leitura de texto com um método singular e genérico, é muito difícil. Esses desafios decorrem dos diversos formatos, layouts e conteúdos de cada tipo de documento, bem como das variações na qualidade da imagem, distorção e conteúdo especializado. Além disso, alcançar uma compreensão contextual e equilibrar desempenho e eficiência torna-se mais complexo com uma gama mais ampla de tipos de documentos.
O IronOCR introduz métodos específicos para realizar OCR em documentos específicos, como documentos de texto padrão, placas de veículos, passaportes e fotos, para obter precisão e desempenho ideais.
Guia rápido: Leia um passaporte em uma linha
Use a extensão ReadPassport do IronOCR para extrair todos os detalhes principais do passaporte com configuração mínima. Com apenas uma linha de código—assumindo que você instalou IronOCR e AdvancedScan—você obterá dados de resultados estruturados como nomes, número do passaporte, país e mais, de forma rápida e fácil.
-
Instale IronOCR com o Gerenciador de Pacotes NuGet
PM > Install-Package IronOcr -
Copie e execute este trecho de código.
var result = new IronTesseract().ReadPassport(new OcrInput().LoadImage("passport.jpg")); -
Implante para testar em seu ambiente de produção.
Comece a usar IronOCR em seu projeto hoje com uma avaliação gratuita
- Baixe uma biblioteca C# para ler placas de veículos, passaportes e fotos.
- Prepare a imagem e o documento PDF para OCR.
- Configure o método `ReadLicensePlate` para ler uma placa de veículo.
- Configure o método `ReadPassport` para recuperar informações de um passaporte.
- Leverage the `ReadPhoto` and `ReadScreenShot` methods to read images that contain hard-to-read text
Sobre o pacote
Os métodos ReadLicensePlate, ReadPassport, ReadPhoto e ReadScreenShot são métodos de extensão para o pacote base do IronOCR e requerem que o pacote IronOcr.Extensions.AdvancedScan seja instalado.
Os métodos funcionam com configurações do mecanismo OCR, como lista negra e lista branca. Vários idiomas, incluindo chinês, japonês, coreano e alfabeto latino, são suportados em todos os métodos, exceto para o método ReadPassport. Observe que cada idioma requer um pacote de idioma adicional, IronOCR .
Para usar a verificação avançada no .NET Framework, é necessário que o projeto seja executado em uma arquitetura x64. Para isso, acesse a configuração do projeto e desmarque a opção "Preferir 32 bits". Saiba mais no seguinte guia de solução de problemas: " Verificação avançada no .NET Framework ".
Exemplo de leitura de documento
O método ReadDocument é um método robusto de leitura de documentos que se especializa em documentos escaneados ou fotos de documentos em papel contendo muito texto. A configuração PageSegmentationMode é muito importante na leitura de documentos de texto com diferentes layouts.
Por exemplo, os tipos SingleBlock e SparseText podem recuperar muitas informações do layout da tabela. Isso ocorre porque o SingleBlock pressupõe que o texto permaneça como um bloco, enquanto o SparseText pressupõe que o texto esteja espalhado por todo o documento.
:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-document.cs
using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
// Configure OCR engine
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;
using var input = new OcrInput();
input.LoadPdf("Five.pdf");
// Perform OCR
OcrResult result = ocr.ReadDocument(input);
Console.WriteLine(result.Text);
Imports IronOcr
Imports System
' Instantiate OCR engine
Private ocr = New IronTesseract()
' Configure OCR engine
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock
Dim input = New OcrInput()
input.LoadPdf("Five.pdf")
' Perform OCR
Dim result As OcrResult = ocr.ReadDocument(input)
Console.WriteLine(result.Text)
Os métodos abaixo são métodos de extensão do pacote base IronOCR e exigem a instalação do pacote IronOCR .
Exemplo de leitura de placa de carro
O método ReadLicensePlate é otimizado para ler placas de veículos a partir de fotos. A informação especial retornada por este método é a propriedade Licenseplate , que contém a informação da localização da placa do veículo no documento fornecido.
:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-license-plate.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputLicensePlate = new OcrInput();
inputLicensePlate.LoadImage("LicensePlate.jpeg");
// Perform OCR
OcrLicensePlateResult result = ocr.ReadLicensePlate(inputLicensePlate);
// Retrieve license plate coordinates
Rectangle rectangle = result.Licenseplate;
// Retrieve license plate value
string output = result.Text;
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
' Instantiate OCR engine
Private ocr = New IronTesseract()
Private inputLicensePlate = New OcrInput()
inputLicensePlate.LoadImage("LicensePlate.jpeg")
' Perform OCR
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(inputLicensePlate)
' Retrieve license plate coordinates
Dim rectangle As Rectangle = result.Licenseplate
' Retrieve license plate value
Dim output As String = result.Text
Leia o exemplo de passaporte
O método ReadPassport é otimizado para leitura e extrai informações de passaportes a partir de fotos de passaportes ao escanear o conteúdo da zona legível por máquina (MRZ). Uma MRZ é uma zona especialmente definida em documentos oficiais, como passaportes, carteiras de identidade e vistos. A MRZ normalmente contém informações pessoais essenciais, como o nome do titular, data de nascimento, nacionalidade e número do documento. Atualmente, este método só suporta o idioma inglês.
:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-passport.cs
using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPassport = new OcrInput();
inputPassport.LoadImage("Passport.jpg");
// Perform OCR
OcrPassportResult result = ocr.ReadPassport(inputPassport);
// Output passport information
Console.WriteLine(result.PassportInfo.GivenNames);
Console.WriteLine(result.PassportInfo.Country);
Console.WriteLine(result.PassportInfo.PassportNumber);
Console.WriteLine(result.PassportInfo.Surname);
Console.WriteLine(result.PassportInfo.DateOfBirth);
Console.WriteLine(result.PassportInfo.DateOfExpiry);
Imports IronOcr
Imports System
' Instantiate OCR engine
Private ocr = New IronTesseract()
Private inputPassport = New OcrInput()
inputPassport.LoadImage("Passport.jpg")
' Perform OCR
Dim result As OcrPassportResult = ocr.ReadPassport(inputPassport)
' Output passport information
Console.WriteLine(result.PassportInfo.GivenNames)
Console.WriteLine(result.PassportInfo.Country)
Console.WriteLine(result.PassportInfo.PassportNumber)
Console.WriteLine(result.PassportInfo.Surname)
Console.WriteLine(result.PassportInfo.DateOfBirth)
Console.WriteLine(result.PassportInfo.DateOfExpiry)
Resultado
Certifique-se de que o documento contenha apenas a imagem do passaporte. Qualquer texto de cabeçalho e rodapé pode confundir o método e resultar em uma saída inesperada.
Leia o exemplo da foto
O método ReadPhoto é otimizado para ler imagens que contêm texto difícil de ler. Este método retorna a propriedade TextRegions , que contém informações úteis sobre o texto detectado, como Region , TextInRegion e FrameNumber .
:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-photo.cs
using IronOcr;
using IronSoftware.Drawing;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPhoto = new OcrInput();
inputPhoto.LoadImageFrame("photo.tif", 2);
// Perform OCR
OcrPhotoResult result = ocr.ReadPhoto(inputPhoto);
// index number refer to region order in the page
int number = result.TextRegions[0].PageNumber;
string textinregion = result.TextRegions[0].TextInRegion;
Rectangle region = result.TextRegions[0].Region;
Imports IronOcr
Imports IronSoftware.Drawing
' Instantiate OCR engine
Private ocr = New IronTesseract()
Private inputPhoto = New OcrInput()
inputPhoto.LoadImageFrame("photo.tif", 2)
' Perform OCR
Dim result As OcrPhotoResult = ocr.ReadPhoto(inputPhoto)
' index number refer to region order in the page
Dim number As Integer = result.TextRegions(0).PageNumber
Dim textinregion As String = result.TextRegions(0).TextInRegion
Dim region As Rectangle = result.TextRegions(0).Region
Leia o exemplo de captura de tela.
O método ReadScreenShot é otimizado para ler capturas de tela que contêm texto difícil de ler. Semelhante ao método ReadPhoto, ele também retorna a propriedade TextRegions .
:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-screenshot.cs
}
using IronOcr;
using System;
using System.Linq;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputScreenshot = new OcrInput();
inputScreenshot.LoadImage("screenshot.png");
// Perform OCR
OcrPhotoResult result = ocr.ReadScreenShot(inputScreenshot);
// Output screenshoot information
Console.WriteLine(result.Text);
Console.WriteLine(result.TextRegions.First().Region.X);
Console.WriteLine(result.TextRegions.Last().Region.Width);
Console.WriteLine(result.Confidence);
}
Imports IronOcr
Imports System
Imports System.Linq
' Instantiate OCR engine
Private ocr = New IronTesseract()
Private inputScreenshot = New OcrInput()
inputScreenshot.LoadImage("screenshot.png")
' Perform OCR
Dim result As OcrPhotoResult = ocr.ReadScreenShot(inputScreenshot)
' Output screenshoot information
Console.WriteLine(result.Text)
Console.WriteLine(result.TextRegions.First().Region.X)
Console.WriteLine(result.TextRegions.Last().Region.Width)
Console.WriteLine(result.Confidence)
}
Perguntas frequentes
Como posso ler placas de veículos usando OCR em C#?
Você pode usar o método ReadLicensePlate fornecido pelo IronOCR para ler placas de veículos com precisão a partir de fotos. Esse método retorna o texto da placa e detalhes de sua localização.
Qual a melhor maneira de extrair informações de fotos de passaporte?
O método ReadPassport da IronOCR foi projetado para escanear a zona de leitura mecânica (MRZ) em fotos de passaporte, extraindo informações essenciais como nome, data de nascimento e número do documento.
O IronOCR consegue ler textos complexos em fotos?
Sim, o método ReadPhoto do IronOCR é otimizado para ler imagens com texto difícil de ler, fornecendo dados detalhados sobre o texto detectado e suas regiões.
É possível usar o IronOCR para ler texto de capturas de tela?
Sem dúvida, o método ReadScreenShot do IronOCR é especificamente otimizado para processar texto em capturas de tela e fornece informações detalhadas sobre a região do texto.
Como posso melhorar a precisão do OCR em documentos com layouts complexos?
Para melhorar a precisão do OCR em layouts de documentos complexos, configure o PageSegmentationMode no IronOCR. Opções como SingleBlock e SparseText são particularmente úteis para extrair informações de layouts de tabela.
O que devo fazer se os recursos avançados de digitalização do IronOCR não estiverem funcionando no meu projeto .NET Framework?
Para garantir que seu projeto esteja configurado para ser executado na arquitetura x64, desmarque a opção "Preferir 32 bits" nas configurações do projeto. Isso resolverá problemas com os recursos avançados de digitalização do IronOCR no .NET Framework.
Há alguma limitação no suporte a idiomas no IronOCR?
O IronOCR suporta vários idiomas, incluindo chinês, japonês, coreano e alfabeto latino. No entanto, o método ReadPassport atualmente suporta apenas documentos em inglês.
O que preciso para usar os recursos avançados de digitalização no IronOCR?
Para usar os recursos avançados de digitalização no IronOCR, é necessário o pacote IronOcr.Extensions.AdvancedScan, disponível exclusivamente para Windows.

