Actualizado 17 de febrero, 2025
Compartir:

Cómo leer documentos específicos

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

por Chaknith Bin

Leer con precisión documentos específicos como documentos de texto estándar, matrículas, pasaportes y fotos con un método singular general es muy difícil. Estos retos se derivan de la diversidad de formatos, diseños y contenidos 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 la comprensión contextual y equilibrar el rendimiento y la eficiencia se hace más complejo con una gama más amplia de tipos de documentos.

IronOCR presenta métodos específicos para realizar OCR en documentos concretos, como documentos de texto estándar, matrículas, pasaportes y fotografías, con el fin de lograr una precisión y un rendimiento óptimos.

Comience con IronOCR

Comience a usar IronOCR en su proyecto hoy con una prueba gratuita.

Primer Paso:
green 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 que el paquete IronOcr.Extensions.AdvancedScan esté instalado. Actualmente, esta extensión sólo está disponible en Windows.

Los métodos funcionan con configuraciones del motor OCR, como listas negras y listas blancas. Se admiten múltiples idiomas, incluidos chino, japonés, coreano y LatinAlphabet, en todos los métodos, excepto en el método ReadPassport. Tenga en cuenta que cada idioma requiere un paquete de idioma adicional, IronOcr.Languages.

El uso de la exploración avanzada en .NET Framework requiere que el proyecto se ejecute en arquitectura x64. Para ello, vaya a la configuración del proyecto y desmarque la opción "Preferir 32 bits". Obtenga más información en la siguiente guía de resolución de problemas: "Advanced Scan on .NET Framework".

Leer ejemplo 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 mucho texto. La configuración de PageSegmentationMode es muy importante para leer documentos de texto con diferentes diseños. Por ejemplo, los tipos SingleBlock y SparseText podrían recuperar mucha información del diseño de la 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 para el paquete base IronOCR y requieren que se instale el paquete IronOcr.Extensions.AdvancedScan. Actualmente, esta extensión sólo está disponible en Windows.

Leer ejemplo 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 placa 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 la lectura y extrae información del pasaporte a partir de fotos del pasaporte escaneando el contenido de la zona legible por máquina (MRZ). Una MRZ es una zona especialmente definida en documentos oficiales como pasaportes, documentos de identidad y visados. La MRZ suele contener información personal esencial, como el nombre, la fecha de nacimiento, la nacionalidad y el número de documento del titular. Actualmente, este método sólo 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 el pasaporte

Asegúrese de que el documento contiene únicamente la imagen del pasaporte. Cualquier texto de cabecera y pie de página podría confundir al método y dar lugar a una salida inesperada.

Leer ejemplo de foto

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].FrameNumber;
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).FrameNumber
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
Chaknith Bin

Chaknith Bin

Ingeniero de software

 LinkedIn

Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.