IRONSOFTWAREHOME

Extrair dados de passaporte em C# com IronOCR

Curtis Chau
Curtis Chau
Updated: 29 de junho de 2026

O método ReadPassport do IronOCR extrai dados estruturados de imagens de passaporte, incluindo nomes, números de passaporte, datas de nascimento e datas de validade em uma única linha de código C#, tornando-o ideal para aplicações de imigração e segurança.

Em aplicações e sistemas como balcões de check-in e imigração de segurança em aeroportos, onde os agentes lidam diariamente com grandes volumes de passaportes, ter um sistema confiável que extraia com precisão informações essenciais sobre os viajantes é crucial para garantir um processo de imigração eficiente e ágil. A biblioteca IronOCR oferece recursos avançados de OCR otimizados especificamente para leitura de passaportes, utilizando o Tesseract 5 internamente com aprimoramentos de aprendizado de máquina.

Início Rápido: Extraia as informações do seu passaporte MRZ em uma única linha

Este exemplo mostra como carregar uma imagem de passaporte usando OcrInput, usar ReadPassport() para extrair dados e acessar campos estruturados como nomes, número e datas a partir do PassportInfo retornado. Não requer nenhuma configuração complexa — apenas uma linha de comando simples. Ao contrário das implementações tradicionais do Tesseract , o IronOCR oferece uma API simplificada, projetada especificamente para extração de documentos.

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2Copie e execute este trecho de código.

    var passportInfo = new IronOcr.IronTesseract().ReadPassport(new IronOcr.OcrInput("passport.jpg")).PassportInfo;
    C#
  3. 3Implante para testar em seu ambiente de produção.

    Comece a usar IronOCR em seu projeto hoje com uma avaliação gratuita
    arrow pointer

Como extrair dados de passaporte em C#?

Como exemplo, usaremos uma imagem de passaporte como entrada para demonstrar a funcionalidade do IronOCR. Após carregar a imagem usando OcrInput, você pode utilizar o método ReadPassport para identificar e extrair informações do passaporte. Este método retorna um objeto OcrPassportResult, que contém propriedades como GivenNames, Country, PassportNumber, Surname, DateOfBirth, DateOfExpiry, Gender, DocumentType, Nacionalidade, NacionalidadeCode, IssuingCountryCode, PersonalNumber e DateOfIssue.

O método ReadPassport faz parte das capacidades especializadas de leitura de documentos do IronOCR, que também incluem métodos para ler placas de veículos, cheques MICR e outros documentos estruturados. O método utiliza técnicas avançadas de visão computacional para localizar e extrair automaticamente a área da MRZ (Zona Legível por Máquina).

Observe:
  • Atualmente, este método funciona apenas para passaportes emitidos em inglês.
  • O uso da verificação avançada no .NET Framework exige que o projeto seja executado em arquitetura x64.
  • Para usuários de Mac, observe que o método ReadPassport atualmente não gira automaticamente o input. Ao utilizar a entrada, certifique-se de que o MRZ esteja sempre na parte inferior do arquivo; caso contrário, o processo falhará. )}]

Qual formato de imagem para passaporte devo usar?

O IronOCR suporta diversos formatos de imagem , incluindo JPG, PNG, TIFF e BMP. Para obter os melhores resultados, certifique-se de que a imagem do seu passaporte tenha resolução adequada (pelo menos 300 DPI) e iluminação apropriada. As configurações de DPI podem ser ajustadas caso esteja trabalhando com digitalizações de baixa qualidade.

Exemplo de página de dados de passaporte americano mostrando campos biográficos, datas e zona legível por máquina para demonstração de extração de dados.

Que código preciso para extrair os dados do passaporte?

O exemplo a seguir demonstra o processo completo de extração de dados de passaporte. Para aplicações que processam múltiplos passaportes, considere implementar suporte a multithreading para melhorar o desempenho. Você também pode acompanhar o progresso do OCR em operações de longa duração.

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);
Console.WriteLine(result.PassportInfo.Gender);
Console.WriteLine(result.PassportInfo.DocumentType);
Console.WriteLine(result.PassportInfo.Nationality);
Console.WriteLine(result.PassportInfo.NationalityCode);
Console.WriteLine(result.PassportInfo.IssuingCountryCode);
Console.WriteLine(result.PassportInfo.PersonalNumber);
Console.WriteLine(result.PassportInfo.DateOfIssue);

Que tipo de resultado posso esperar do ReadPassport?

Os dados extraídos são retornados em um formato estruturado que facilita a integração com sistemas existentes. A classe OcrResult fornece acesso abrangente a todas as informações extraídas.

Console de depuração mostrando os dados extraídos do passaporte: nome, país, número do passaporte e datas do processamento OCR.

Em seguida, acessamos o membro de dados PassportInfo obtido do objeto OcrPassportResult. O processo de extração lida automaticamente com vários layouts e formatos de passaporte, fornecendo resultados consistentes em diferentes países emissores.

  • GivenNames: Uma propriedade de PassportInfo retorna os nomes dados do input do passaporte como uma string. Isso corresponde à primeira linha de dados MRZ, posições 4 a 44.
  • Country: Uma propriedade de PassportInfo retorna o país do input do passaporte como uma string. Isso corresponde à primeira linha de dados MRZ, posições 2 a 3. A string retornada exibe o nome completo do país emissor em vez da abreviação. Em nosso exemplo, "USA" retorna "Estados Unidos da América".
  • PassportNumber: Uma propriedade de PassportInfo retorna o número do passaporte do input do passaporte como uma string. Isso corresponde à segunda linha de dados MRZ, posições 1 a 9.
  • Surname: Uma propriedade de PassportInfo retorna o sobrenome do input do passaporte como uma string. Isso corresponde à primeira linha de dados MRZ, posições 4 a 44.
  • DateOfBirth: Uma propriedade de PassportInfo retorna a data de nascimento do input do passaporte como uma string no formato AAAA-MM-DD. Isso corresponde à segunda linha de dados MRZ, posições 14 a 19.
  • DateOfExpiry: Um membro de propriedade de PassportInfo retorna a data de validade do input do passaporte como uma string no formato AAAA-MM-DD. Isso corresponde à segunda linha de dados MRZ, posições 22 a 27.
  • Gender: Retorna o gênero da posição 21 da MRZ como Gender.Male, Gender.Female ou Gender.Unspecified.
  • DocumentType: Retorna o tipo de documento das posições 1-2 da MRZ, como "P" para passaporte, "PS" para serviço ou "PD" para diplomático.
  • Nacionalidade: Retorna o nome completo do país em inglês derivado das posições 11-13 da MRZ.
  • NacionalidadeCode: Retorna o código bruto ISO 3166-1 alfa-3 das posições 11-13 da MRZ.
  • IssuingCountryCode: Retorna o código bruto ISO 3166-1 alfa-3 para o estado emissor das posições 3-5 da MRZ.
  • PersonalNumber: Retorna o número de identificação nacional opcional das posições 29-42 da MRZ.
  • DateOfIssue: Retorna a data de emissão extraída da Zona de Inspeção Visual (VIZ) por meio da correspondência de rótulos em 27 idiomas.

Que informações da MRZ posso extrair de passaportes?

O IronOCR lê as informações da MRZ contidas nas duas últimas linhas de qualquer passaporte que siga o padrão da OACI (Organização da Aviação Civil Internacional). Os dados MRZ consistem em duas linhas de dados, com cada conjunto de posições contendo informações únicas. Segue uma breve tabela mostrando qual informação corresponde ao índice da linha.

A funcionalidade de análise MRZ no IronOCR foi projetada para lidar com variações na qualidade de impressão e na orientação da imagem . Para documentos complexos, você pode aplicar filtros de correção de imagem para melhorar a precisão do reconhecimento.

Qual é o aspecto da seção MRZ?

A MRZ geralmente está localizada na parte inferior da página do passaporte e consiste em duas linhas de texto padronizado. Compreender a estrutura da MRZ ajuda a solucionar problemas de extração e a validar os resultados.

Página do passaporte americano com a Zona de Leitura Mecânica (MRZ) destacada em vermelho, mostrando as linhas de dados alfanuméricos codificados.

Primeira fila

PosiçãoCampoDescrição
1Tipo de documentoNormalmente, 'P' significa passaporte.
2-3País emissorCódigo de país de três letras (ISO 3166-1 alfa-3)
4-44Sobrenome e nome próprioSobrenome seguido de '<<' e depois nomes próprios separados por '<'

Segunda fila

PosiçãoCampoDescrição
1-9Número do passaporteNúmero de passaporte único
10Dígito verificador (número do passaporte)Dígito verificador do número do passaporte
11-13NacionalidadeCódigo de nacionalidade de três letras (ISO 3166-1 alfa-3)
14-19Data de nascimentoData de nascimento no formato AAMMDD
20Dígito verificador (data de nascimento)Dígito verificador da data de nascimento
21SexoSexoo ('M' para masculino, 'F' para feminino, 'X' para não especificado)
22-27Data de ExpiraçãoData de validade no formato AAMMDD
28Dígito verificador (data de validade)Dígito verificador da data de validade
29-42Número pessoalNúmero pessoal opcional (normalmente o número de identificação nacional)
43Dígito de verificação (número pessoal)Dígito verificador do número pessoal
44Dígito de verificação (composto)Dígito verificador geral

Como posso depurar e verificar os resultados da extração do passaporte?

Também podemos verificar os resultados do IronOCR obtendo o texto bruto extraído da imagem do passaporte e o nível de confiança para confirmar se as informações extraídas são precisas. Usando o exemplo acima, podemos acessar as propriedades Confidence e Text do objeto OcrPassportResult.

Para fins de depuração, você pode querer destacar regiões de texto para verificar visualmente quais áreas foram reconhecidas. Essa funcionalidade é particularmente útil para solucionar problemas de extração ou otimizar regiões de digitalização.

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 Confidence level and raw extracted text
Console.WriteLine(result.Confidence);
Console.WriteLine(result.Text);

Console de depuração do VS Code mostrando saída de dados de passaporte com detalhes pessoais, países e strings codificadas

  • Confidence: A propriedade Confidence de OcrPassportResult é um float que indica a confiança estatística de precisão do OCR como uma média de cada caractere. Esse valor é menor se a imagem do passaporte estiver desfocada ou contiver outras informações. Um representa o nível mais alto e o maior nível de confiança, enquanto zero representa o nível mais baixo e o menor nível de confiança. Para aplicações de produção, considere implementar limites de confiança nos resultados para garantir a qualidade dos dados.
  • Text: A propriedade Text de OcrPassportResult contém o texto bruto não analisado extraído da imagem do passaporte. Os desenvolvedores podem usar isso em testes unitários para verificar o texto extraído da imagem do passaporte. Para cenários avançados, você pode exportar os resultados no formato hOCR para análises adicionais.

Melhores práticas para aplicativos de digitalização de passaportes

Ao implementar a leitura de passaportes em ambientes de produção, considere estes fatores adicionais:

  1. Qualidade da imagem : Certifique-se de que as imagens de entrada atendam aos padrões mínimos de qualidade. O Assistente de Filtros pode ajudar a otimizar imagens para melhor reconhecimento.

  2. Desempenho : Para processamento de alto volume, implemente suporte assíncrono e considere o processamento em lote com múltiplos passaportes.

  3. Segurança : Como os dados do passaporte são sensíveis, assegure-se do manuseio adequado dos dados e considere a integração com sistemas seguros de gerenciamento de documentos.

  4. Validação : Implemente a validação do dígito verificador para os dados MRZ extraídos, a fim de garantir a precisão. O formato MRZ inclui vários dígitos de verificação que podem ser usados ​​para verificar a integridade das informações extraídas.

  5. Tratamento de erros : Implemente um tratamento de erros robusto para casos em que as imagens de passaporte possam estar danificadas, mal iluminadas ou contenham formatos não padronizados.

Perguntas frequentes

Como extrair dados de passaporte de imagens em C#?

Você pode extrair dados de passaporte usando o método ReadPassport do IronOCR. Basta carregar a imagem do seu passaporte com OcrInput e chamar ReadPassport() para obter dados estruturados, incluindo nomes, números de passaporte, datas de nascimento e datas de validade, em uma única linha de código.

Que informações do passaporte podem ser extraídas automaticamente?

O método ReadPassport do IronOCR extrai os seguintes dados: nome, país, número do passaporte, sobrenome, data de nascimento e data de validade, a partir de imagens de passaportes. Todos os dados são retornados como strings em um objeto PassportInfo estruturado.

Preciso de alguma configuração complexa para ler os dados MRZ do passaporte?

Não é necessária nenhuma configuração complexa. O IronOCR oferece uma API simplificada que extrai os dados da MRZ do passaporte com apenas uma linha de código, ao contrário das implementações tradicionais do Tesseract, que exigem mais configuração.

Que tecnologia permite a leitura de passaportes?

O IronOCR utiliza o Tesseract 5 internamente, com aprimoramentos de aprendizado de máquina e técnicas avançadas de visão computacional, para localizar e extrair automaticamente a área MRZ (Zona Legível por Máquina) de imagens de passaporte.

Isso pode ser usado em sistemas de imigração aeroportuária?

Sim, o IronOCR é ideal para aplicações de imigração e segurança em aeroportos, onde os agentes lidam diariamente com um grande volume de passaportes. Ele fornece extração confiável de informações essenciais do viajante para garantir processos de imigração eficientes.

What are the requirements for using the ReadPassport method on a Mac?

When using ReadPassport on a Mac, ensure the MRZ is at the bottom of the input image, as automatic rotation is not supported, and the project needs to run in x64 architecture on advanced .NET Framework.

What image formats are supported by IronOCR for passport OCR?

IronOCR supports various image formats, including JPG, PNG, TIFF, and BMP, for passport OCR and recommends images with a resolution of at least 300 DPI.

Can IronOCR handle non-standard passport formats?

IronOCR's MRZ parsing is designed to handle variations in passport print quality and image orientation, making it adaptable to different passport layouts and formats.

How does IronOCR ensure the accuracy of extracted passport data?

IronOCR provides the Confidence property in the OcrPassportResult, which indicates the statistical accuracy of the OCR process, and developers can implement thresholds for quality assurance.

What additional features does IronOCR offer for MRZ extraction validation?

IronOCR includes features like check digit validation for MRZ data fields, ensuring the accuracy and integrity of the extracted information.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Pronto para começar?

Nuget Downloads 6,236,385Versão:2026.9recém-lançado

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.
Biblioteca NuGet C# para PDF
Instalar com NuGet

Versão: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. No Solution Explorer, clique com o botão direito do mouse em Referências e selecione Gerenciar Pacotes NuGet.
  2. Selecione Procurar e pesquise "IronOCR".
  3. Selecione o pacote e instale.
DLL de PDF em C#
Baixar DLL

Versão: 2026.9

ou faça o download do Windows Installer aqui .

  1. Baixe e descompacte o IronOCR em um local como ~/Libs dentro do diretório da sua solução.
  2. No Solution Explorer do Visual Studio, clique com o botão direito do mouse em Referências. Selecione Procurar e digite "IronOCR.dll".

Licenças a partir de US$ 749

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.