Cómo leer documentos específicos usando OCR en C#

Cómo leer documentos especializados con C# y IronOCR

This article was translated from English: Does it need improvement?
Translated
View the article in English

Leer con precisión documentos específicos como documentos de texto estándar, matrículas, pasaportes y fotos con un método general singular es muy difícil. Estos desafíos provienen de los diversos formatos, disposiciones y contenido de cada tipo de documento, así como de las variaciones en la calidad de la imagen, la distorsión y el contenido especializado. Además, lograr una comprensión contextual y equilibrar el rendimiento y la eficiencia se vuelve más complejo con un alcance más amplio de tipos de documentos.

IronOCR introduce métodos específicos para realizar OCR en documentos particulares como documentos de texto estándar, matrículas, pasaportes y fotos para lograr una precisión y rendimiento óptimos.

Inicio rápido: Leer un pasaporte en una línea

Utiliza la extensión ReadPassport de IronOCR para extraer todos los detalles clave del pasaporte con una configuración mínima. Con solo una línea de código, suponiendo que hayas instalado IronOCR y AdvancedScan, obtendrás datos de resultados estructurados como nombres, número de pasaporte, país y más, de manera rápida y sin esfuerzo.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronOCR con el gestor de paquetes NuGet

    PM > Install-Package IronOcr

  2. Copie y ejecute este fragmento de código.

    var result = new IronTesseract().ReadPassport(new OcrInput().LoadImage("passport.jpg"));
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronOCR en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer


Acerca del paquete

Los métodos ReadLicensePlate, ReadPassport, ReadPhoto y ReadScreenShot son métodos de extensión del paquete base de IronOCR y requieren tener instalado el paquete IronOcr.Extensions.AdvancedScan.

Los métodos funcionan con configuraciones del motor OCR como listas negras y listas blancas. Todos los métodos admiten múltiples idiomas, incluidos chino, japonés, coreano y alfabeto latino, excepto el método ReadPassport. Por favor, tenga en cuenta que cada idioma requiere un paquete de idioma adicional, IronOCR.Languages.

Usar escaneo avanzado en .NET Framework requiere que el proyecto se ejecute en arquitectura x64. Navega a la configuración del proyecto y desactiva la opción 'Preferir 32 bits' para lograrlo. Aprende más en la siguiente guía de solución de problemas: "Escaneo Avanzado en .NET Framework".

Ejemplo de lectura de documento

El método ReadDocument es un método de lectura de documentos robusto que se especializa en documentos escaneados o fotos de documentos en papel que contienen una gran cantidad de texto. La configuración de PageSegmentationMode es muy importante al leer documentos de texto con diferentes formatos.

Por ejemplo, los tipos SingleBlock y SparseText podrían recuperar mucha información de un diseño de tabla. Esto se debe a que SingleBlock asume que el texto se mantiene como un bloque, mientras que SparseText asume que el texto está disperso por todo el 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)
$vbLabelText   $csharpLabel

Los métodos a continuación son métodos de extensión del paquete base de IronOCR y requieren tener instalado el paquete IronOCR.Extensions.AdvancedScan.

Ejemplo de lectura de matrícula

El método ReadLicensePlate está optimizado para leer matrículas de fotos. La información especial devuelta por este método es la propiedad Licenseplate, que contiene la información de la ubicación de la matrícula en el documento proporcionado.

: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
$vbLabelText   $csharpLabel

Leer ejemplo de pasaporte

El método ReadPassport está optimizado para leer y extraer información de pasaportes de fotos de pasaporte escaneando el contenido de la zona de lectura mecánica (MRZ). Una MRZ es una zona especialmente definida en documentos oficiales como pasaportes, tarjetas de identificación y visas. La MRZ típicamente contiene información personal esencial, como el nombre del titular, fecha de nacimiento, nacionalidad y número de documento. Actualmente, este método solo admite el 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)
$vbLabelText   $csharpLabel

Resultado

Leer Pasaporte

Por favor asegúrate de que el documento solo contenga la imagen del pasaporte. Cualquier texto de encabezado y pie de página podría confundir al método y resultar en una salida inesperada.

Leer ejemplo de fotografía

El método ReadPhoto está optimizado para leer imágenes que contienen texto difícil de leer. Este método devuelve la propiedad TextRegions, que contiene información útil sobre el texto detectado, como Region, TextInRegion y 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
$vbLabelText   $csharpLabel

Leer ejemplo de captura de pantalla

El método ReadScreenShot está optimizado para leer capturas de pantalla que contienen texto difícil de leer. Similar al método ReadPhoto, también devuelve la propiedad 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)
}
$vbLabelText   $csharpLabel

Preguntas Frecuentes

¿Cómo puedo leer matrículas usando OCR en C#?

Puede usar el método ReadLicensePlate proporcionado por IronOCR para leer con precisión matrículas de fotos. Este método devuelve el texto de la matrícula y sus detalles de ubicación.

¿Cuál es la mejor manera de extraer información de las fotos de pasaporte?

El método ReadPassport de IronOCR está diseñado para escanear la zona de lectura mecánica (MRZ) en las fotos de pasaporte, extrayendo información esencial como el nombre, la fecha de nacimiento y el número de documento.

¿Puede IronOCR leer texto de fotos con texto difícil?

Sí, el método ReadPhoto en IronOCR está optimizado para leer imágenes con texto difícil de leer, proporcionando datos detallados sobre el texto detectado y sus regiones.

¿Es posible usar IronOCR para leer texto de capturas de pantalla?

Absolutamente, el método ReadScreenShot de IronOCR está específicamente optimizado para procesar texto en capturas de pantalla, y proporciona información detallada sobre regiones de texto.

¿Cómo puedo mejorar la precisión de OCR para documentos con disposiciones complejas?

Para mejorar la precisión de OCR para disposiciones de documentos complejos, configure el PageSegmentationMode en IronOCR. Opciones como SingleBlock y SparseText son particularmente útiles para extraer información de disposiciones de tablas.

¿Qué debo hacer si las características avanzadas de escaneo de IronOCR no funcionan en mi proyecto .NET Framework?

Asegúrese de que su proyecto esté configurado para ejecutarse en arquitectura x64 al desmarcar la opción 'Preferir 32 bits' en la configuración de su proyecto para abordar problemas con las características avanzadas de escaneo en IronOCR en .NET Framework.

¿Existen limitaciones de soporte de idiomas en IronOCR?

IronOCR admite múltiples idiomas, incluidos chino, japonés, coreano y alfabeto latino. Sin embargo, el método ReadPassport actualmente solo admite documentos en inglés.

¿Qué necesito para usar características avanzadas de escaneo en IronOCR?

Para usar características avanzadas de escaneo en IronOCR, se requiere el paquete IronOcr.Extensions.AdvancedScan, que está disponible exclusivamente en Windows.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 5,167,857 | Version: 2025.11 recién lanzado