Cómo extraer resultados de lectura en C# con IronOCR

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

El resultado de lectura u OCR abarca una gran cantidad de información relacionada con párrafos, líneas, palabras y caracteres individuales detectados. Para cada uno de estos elementos, el resultado proporciona un conjunto completo de detalles.

Para cada elemento, proporciona el contenido del texto, coordenadas precisas X e Y, dimensiones (anchura y altura), dirección del texto (Izquierda a Derecha o Arriba a Abajo), y ubicación en un objeto CropRectangle.

como-título:2(Inicio rápido: Recuperar texto de la primera palabra detectada)

Comienza en segundos: usa el método Read de IronTesseract para realizar OCR en una imagen y extraer el texto de la primera palabra utilizando la colección Words. Perfecto para configuraciones rápidas y tareas de extracción simples.

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.

    string wordText = new IronTesseract().Read("file.jpg").Words[0].Text;
  3. Despliegue para probar en su entorno real

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

Salida de datos

El valor del resultado no solo contiene el texto extraído sino que también proporciona información sobre páginas, párrafos, líneas, palabras, caracteres y códigos de barras descubiertos en el documento PDF e imagen por IronOcr. Puedes acceder a esta información desde el objeto OcrResult devuelto usando el método Read.

:path=/static-assets/ocr/content-code-examples/how-to/read-results-output-information.cs
using IronOcr;
using System;
using static IronOcr.OcrResult;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sample.jpg");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;

// Output information to console
Console.WriteLine($"Text: {paragraphs[0].Text}");
Console.WriteLine($"X: {paragraphs[0].X}");
Console.WriteLine($"Y: {paragraphs[0].Y}");
Console.WriteLine($"Width: {paragraphs[0].Width}");
Console.WriteLine($"Height: {paragraphs[0].Height}");
Console.WriteLine($"Text direction: {paragraphs[0].TextDirection}");
Imports IronOcr
Imports System
Imports IronOcr.OcrResult

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Add image
Private imageInput = New OcrImageInput("sample.jpg")
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)

' Retrieve list of detected paragraphs
Private paragraphs() As Paragraph = ocrResult.Paragraphs

' Output information to console
Console.WriteLine($"Text: {paragraphs(0).Text}")
Console.WriteLine($"X: {paragraphs(0).X}")
Console.WriteLine($"Y: {paragraphs(0).Y}")
Console.WriteLine($"Width: {paragraphs(0).Width}")
Console.WriteLine($"Height: {paragraphs(0).Height}")
Console.WriteLine($"Text direction: {paragraphs(0).TextDirection}")
$vbLabelText   $csharpLabel
Datos en OcrResult

Texto en el resultado de OCR

El objeto OcrResult presenta el texto extraído de una manera sencilla e intuitiva, permitiendo a los desarrolladores usarlo tal como está o integrarlo en otras partes de su aplicación.

Veamos el ejemplo de código que imprime el texto en un bucle para verificar los resultados.

:path=/static-assets/ocr/content-code-examples/how-to/read-results-output-text.cs
using IronOcr;
using System;
using static IronOcr.OcrResult;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sampleText.png");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;

// Loop through each paragraph in the array
Console.WriteLine("--- All Detected Paragraphs ---");
foreach (Paragraph paragraph in paragraphs)
{
    // Print the text of the current paragraph
    Console.WriteLine(paragraph.Text);
    
    // Add a blank line for better separation (optional)
    Console.WriteLine(); 
}

IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

Datos de texto en OcrResult

Aquí está la salida impresa en la consola. Como puede ver, IronOCR extrae perfectamente el texto del párrafo, línea por línea, con precisión.

Ubicación del texto en el resultado de OCR

Además del texto extraído, OcrResult proporciona datos de ubicación detallados. El siguiente código demuestra cómo iterar sobre cada párrafo e imprimir sus coordenadas (X e Y) en la consola.

:path=/static-assets/ocr/content-code-examples/how-to/read-results-output-coordinates.cs
using IronOcr;
using System;
using static IronOcr.OcrResult;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sampleText.png");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;

Console.WriteLine("--- All Detected Coordinates of Paragraphs ---");

// Use a 'for' loop to get an index for each paragraph
for (int i = 0; i < paragraphs.Length; i++)
{
    // Get the current paragraph
    Paragraph paragraph = paragraphs[i];

    // Print the paragraph number, text, and its location
    Console.WriteLine($"X: {paragraph.X}"); // X-coordinate (left edge)
    Console.WriteLine($"Y: {paragraph.Y}"); // Y-coordinate (top edge)

    // Add a blank line for better separation
    Console.WriteLine();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado

Coordenadas de texto en OcrResult

Como puedes ver en la salida, ves tres conjuntos de coordenadas correspondientes a los tres párrafos.

Atributos adicionales en el resultado de OCR

Además del texto y las coordenadas del texto, IronOCR ofrece información adicional. Para cada parte del texto, como párrafos, líneas, palabras y caracteres individuales, proporcionamos la siguiente información:

  • Texto: El texto real como una cadena.
  • X: La posición desde el borde izquierdo de la página en píxeles.
  • Y: La posición desde el borde superior de la página en píxeles.
  • Anchura: La anchura en píxeles.
  • Altura: La altura en píxeles.
  • Dirección del texto: La dirección en la que se leyó el texto, como 'Izquierda a Derecha' o 'Arriba a Abajo.'
  • Ubicación: Un rectángulo que muestra dónde está este texto en la página en píxeles.

Comparación de párrafos, líneas, palabras y caracteres

A continuación se presenta la comparación de los párrafos, líneas, palabras y caracteres detectados.

Resaltar párrafo
Línea resaltada
Resaltar palabra
Resaltar personaje

Código de barras y código QR

¡Eso es correcto! IronOcr puede leer códigos de barras y códigos QR. Aunque la funcionalidad puede no ser tan robusta como IronBarcode, IronOcr proporciona soporte para tipos comunes de códigos de barras. Para habilitar la detección de códigos de barras, establece la propiedad Configuration.ReadBarCodes en verdadero.

Además, se puede extraer información valiosa del código de barras detectado, incluida su formato, valor, coordenadas (x, y), altura, anchura, y ubicación como objeto Iron Software.Drawing.Rectangle. Esta clase Rectangle en IronDrawing permite un posicionamiento preciso en el documento.

:path=/static-assets/ocr/content-code-examples/how-to/read-results-barcodes.cs
using IronOcr;
using System;
using static IronOcr.OcrResult;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Enable barcodes detection
ocrTesseract.Configuration.ReadBarCodes = true;

// Add image
using OcrInput ocrInput = new OcrInput();
ocrInput.LoadPdf("sample.pdf");

// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(ocrInput);

// Output information to console
foreach(var barcode in ocrResult.Barcodes)
{
    Console.WriteLine("Format = " + barcode.Format);
    Console.WriteLine("Value = " + barcode.Value);
    Console.WriteLine("X = " + barcode.X);
    Console.WriteLine("Y = " + barcode.Y);
}
Console.WriteLine(ocrResult.Text);
Imports IronOcr
Imports System
Imports IronOcr.OcrResult

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Enable barcodes detection
ocrTesseract.Configuration.ReadBarCodes = True

' Add image
Using ocrInput As New OcrInput()
	ocrInput.LoadPdf("sample.pdf")
	
	' Perform OCR
	Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
	
	' Output information to console
	For Each barcode In ocrResult.Barcodes
		Console.WriteLine("Format = " & barcode.Format)
		Console.WriteLine("Value = " & barcode.Value)
		Console.WriteLine("X = " & barcode.X)
		Console.WriteLine("Y = " & barcode.Y)
	Next barcode
	Console.WriteLine(ocrResult.Text)
End Using
$vbLabelText   $csharpLabel

Resultado

Detectar códigos de barras

Preguntas Frecuentes

¿Cómo extraigo elementos de texto de imágenes y PDFs usando C#?

Puedes extraer elementos de texto de imágenes y PDFs usando IronOCR, utilizando su método `Read`, que realiza Reconocimiento Óptico de Caracteres (OCR) para obtener detalles sobre párrafos, líneas, palabras y caracteres, incluyendo su contenido de texto, coordenadas y dimensiones.

¿Cuál es el proceso para comenzar con OCR en .NET C#?

Para comenzar con OCR en .NET C#, descarga la biblioteca IronOCR desde NuGet, prepara tu imagen o documento PDF y usa el método `Read` para obtener un objeto `OcrResult`, que contiene información detallada sobre el texto extraído y la estructura del documento.

¿Puede IronOCR detectar y extraer información de códigos de barras?

Sí, IronOCR puede detectar y extraer información de códigos de barras configurando la propiedad `Configuration.ReadBarCodes` a verdadero, permitiéndote recuperar datos como el formato del código de barras, su valor y su posición dentro del documento.

¿Qué tipos de elementos de documentos puede detectar IronOCR?

IronOCR puede detectar varios elementos de documentos incluyendo páginas, párrafos, líneas, palabras y caracteres individuales, así como códigos de barras y códigos QR, proporcionando un análisis exhaustivo de la estructura del documento.

¿Cómo puedo configurar IronOCR para leer texto en diferentes direcciones?

IronOCR es capaz de leer textos en múltiples direcciones, como 'Izquierda a Derecha' o 'Arriba a Abajo', analizando la propiedad de dirección dentro del objeto `OcrResult`.

¿Qué es el objeto `CropRectangle` en IronOCR?

El objeto `CropRectangle` en IronOCR define la ubicación y el tamaño de los elementos de texto en una página en términos de coordenadas y dimensiones, ayudando a la identificación y extracción precisa del texto.

¿Cómo uso el método `Read` de IronOCR para analizar documentos?

Para usar el método `Read` en IronOCR, crea una instancia del motor de IronOCR, carga tu documento de destino y ejecuta el método `Read` para obtener los resultados del OCR, que pueden usarse para acceder a los datos de texto y las propiedades del documento.

¿Cómo maneja IronOCR la detección de códigos QR?

IronOCR maneja la detección de códigos QR habilitando la lectura de códigos de barras a través del ajuste `Configuration.ReadBarCodes`, lo que permite extraer datos del código QR, incluyendo su formato, valor y ubicación.

¿Cuál es el papel de `OcrResult` en la extracción de texto?

El objeto `OcrResult` juega un papel crucial en la extracción de texto al contener el texto extraído y detalles acompañantes como la posición, dimensiones y dirección de los elementos de texto, así como información de códigos de barras.

¿Cómo puedo asegurar una extracción precisa de texto con IronOCR?

Para asegurar una extracción precisa de texto con IronOCR, asegúrate de proporcionar documentos de entrada de alta calidad y configurar adecuadamente los ajustes como `Configuration.ReadBarCodes` para la detección de códigos de barras, optimizando el rendimiento del OCR.

Chaknith Bin
Ingeniero de Software
Chaknith trabaja en IronXL e IronBarcode. Tiene un profundo conocimiento en C# y .NET, ayudando a mejorar el software y apoyar a los clientes. Sus conocimientos derivados de las interacciones con los usuarios contribuyen a mejores productos, documentación y experiencia en general.
¿Listo para empezar?
Nuget Descargas 5,167,857 | Version: 2025.11 recién lanzado