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.


Biblioteca NuGet C# para OCR

Instalar con NuGet

Install-Package IronOcr
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

Acerca del paquete

Los métodos ReadLicensePlate, ReadPassport, ReadPhoto, y ReadScreenShot son métodos de extensión del paquete base IronOCR y requieren la extensión IronOcr.Extensions.AdvancedScan paquete a instalar. Actualmente, esta extensión sólo está disponible en Windows.

Los métodos funcionan con configuraciones del motor de OCR como lista negra y lista blanca. Todos los métodos admiten varios idiomas, incluidos chino, japonés, coreano y alfabeto latino, excepto el método ReadPassport. Tenga en cuenta que cada idioma requiere un paquete lingüístico adicional, IronOcr.Idiomas.

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 solución de problemas: "Exploración avanzada en .NET Framework."

Leer ejemplo de documento

El método ReadDocument es un método robusto de lectura de documentos que se especializa en documentos escaneados o fotos de documentos en papel que contienen mucho texto. La configuración PageSegmentationMode es muy importante en la lectura de 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 permanece 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)
VB   C#

Los siguientes métodos son extensiones del paquete básico IronOCR y requieren la extensión IronOcr.Extensions.AdvancedScan paquete a instalar. 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 a partir de fotos. La información especial que devuelve este método es la propiedad Matrícula, 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
VB   C#

Leer ejemplo de pasaporte

El método ReadPassport está optimizado para leer y extraer información de pasaportes de fotos de pasaportes escaneando la zona legible por máquina (MRZ) contenidos. 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)
VB   C#

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
VB   C#

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)
VB   C#

Chaknith Bin

Ingeniero de software

Chaknith es el Sherlock Holmes de los desarrolladores. La primera vez que se le ocurrió que podría tener futuro en la ingeniería de software fue cuando hacía retos de código por diversión. Su trabajo se centra en IronXL e IronBarcode, pero se enorgullece de ayudar a los clientes con todos los productos. Chaknith aprovecha sus conocimientos, adquiridos hablando directamente con los clientes, para ayudar a mejorar los propios productos. Sus comentarios anecdóticos van más allá de los tickets de Jira y apoyan el desarrollo de productos, la documentación y el marketing, para mejorar la experiencia general del cliente.Cuando no está en la oficina, se le puede encontrar aprendiendo sobre aprendizaje automático, codificación y senderismo.