Cómo usar visión por computadora para encontrar texto en C#

Cómo encontrar texto con visión por ordenador en C#

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

IronOCR utiliza la visión por ordenador OpenCV para detectar automáticamente regiones de texto en imágenes antes del procesamiento OCR. Esto mejora la precisión del texto con ruido, multirregión o deformado al centrar el reconocimiento de Tesseract solo en las áreas de texto identificadas, lo que mejora significativamente los resultados de extracción en comparación con el procesamiento de imágenes completas.

como-encabezado:2(Inicio rápido: Detectar y OCR la región principal de texto)

Este ejemplo demuestra la extracción inmediata de texto: carga una imagen, utiliza la visión por ordenador de IronOCR para autodetectar la región de texto principal con FindTextRegion() y, a continuación, ejecuta .Read(...) para extraer el texto en una línea.

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.

    using var result = new IronTesseract().Read(new OcrInput().LoadImage("image.png").FindTextRegion());
  3. Despliegue para probar en su entorno real

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

¿Cómo instalar IronOCR.ComputerVision mediante el paquete NuGet?

Métodos de OpenCV que realizan visión por computadora en IronOCR son visibles en el paquete regular de NuGet de IronOCR. Para obtener información detallada sobre la instalación, consulte nuestra Guía de instalación de NuGet.

¿Por qué IronOCR requiere un paquete de visión por ordenador independiente?

El uso de estos métodos requiere la instalación de NuGet de IronOcr.ComputerVision en la solución. Se le solicita descargarlo si no lo tiene instalado. La función de visión por ordenador utiliza algoritmos OpenCV que mejoran significativamente la precisión de la detección de texto, de forma similar a las técnicas utilizadas en nuestras funciones reconocimiento de matrículas y escaneado de pasaportes.

¿Qué paquete específico de la plataforma debo instalar?

¿Cómo se instala con Package Manager Console?

Instale utilizando el Administrador de Paquetes NuGet o inserte lo siguiente en la Consola del Administrador de Paquetes:

Install-Package IronOcr.ComputerVision.Windows

Esto proporciona los ensamblajes necesarios para utilizar IronOCR Computer Vision con nuestro archivo de modelo.

¿Qué métodos de visión por ordenador están disponibles en IronOCR?

Más adelante se incluyen ejemplos de código. A continuación se ofrece una visión general de los métodos disponibles en la actualidad:

MétodoExplicación
BuscarRegiónDeTextoDetecta regiones que contienen elementos de texto e indica a Tesseract que solo busque texto dentro del área en la que se detectó el texto.
Buscar múltiples regiones de textoDetecta áreas que contienen elementos de texto y divide la página en imágenes separadas según las regiones de texto.
Obtener regiones de textoScans the image and returns a list of text regions as `List`.

¿Cómo se utiliza FindTextRegion para detectar áreas de texto?

FindTextRegion utiliza visión por ordenador para detectar regiones que contienen elementos de texto en cada página de un objeto OcrInput. Este método es especialmente útil cuando se procesan imágenes con texto disperso o cuando se necesita mejorar el rendimiento centrándose únicamente en las áreas que contienen texto.

¿Cuál es el uso básico de FindTextRegion?

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-1.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindTextRegion();
OcrResult result = ocr.Read(input);
string resultText = result.Text;
$vbLabelText   $csharpLabel

Precaución Este método está actualmente obsoleto en IronOcr 2025.6.x y no acepta parámetros personalizados.

¿Cómo puedo personalizar los parámetros de FindTextRegion?

Llame a este método con parámetros personalizados para ajustar la detección de texto. Estos parámetros funcionan de forma similar a nuestras configuraciones de filtros de imagen:

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-2.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindTextRegion(Scale: 2.0, DilationAmount: 20, Binarize: true, Invert: true);
OcrResult result = ocr.Read(input);
string resultText = result.Text;
$vbLabelText   $csharpLabel

¿Cómo es FindTextRegion en la práctica?

En este ejemplo, utilizo la siguiente imagen para un método que necesita recortar las áreas que contienen texto, pero las imágenes de entrada pueden variar en la ubicación del texto. Utilizo FindTextRegion para limitar el escaneo a un área en la que Computer Vision ha detectado texto. Este enfoque es similar a las técnicas utilizadas en nuestro tutorial áreas de contenido y regiones de cultivo. Esta es una imagen de ejemplo:

Estadísticas de la empresa IronSoftware 2022 que muestran métricas de desarrolladores y datos de rendimiento empresarial
:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-3.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
using System.Linq;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("wh-words-sign.jpg");

// Find the text region using Computer Vision
Rectangle textCropArea = input.GetPages().First().FindTextRegion();

// For debugging and demonstration purposes, lets see what region it found:
input.StampCropRectangleAndSaveAs(textCropArea, Color.Red, "image_text_area", AnyBitmap.ImageFormat.Png);

// Looks good, so let us apply this region to hasten the read:
var ocrResult = ocr.Read("wh-words-sign.jpg", textCropArea);
Console.WriteLine(ocrResult.Text);
$vbLabelText   $csharpLabel

¿Cómo depuro y verifico la detección de regiones de texto?

Este código tiene dos salidas. El primero es un archivo .png guardado por StampCropRectangleAndSaveAs utilizado para depuración. Esta técnica también se trata en nuestra guía de textos destacados para depuración. Podemos ver dónde IronCV (Computer Vision) detectó el texto:

Estadísticas de IronSoftware 2022 con un cuadro delimitador rojo que muestra la funcionalidad de detección de texto FindTextRegion

La detección identifica con precisión el área de texto. El segundo resultado es el texto propiamente dicho:

IRONSOFTWARE

50,000+

Developers in our active community

10,777,061 19,313
NuGet downloads Support tickets resolved
50%+ 80%+
Engineering Team growth Support Team growth
$25,000+

Raised with #TEAMSEAS to clean our beaches & waterways

¿Cómo se utiliza FindMultipleTextRegions para varias áreas de texto?

FindMultipleTextRegions toma todas las páginas de un objeto OcrInput y utiliza la visión por ordenador para detectar las áreas que contienen elementos de texto y, a continuación, divide la entrada en imágenes separadas en función de las regiones de texto. Esto resulta especialmente útil para procesar documentos con varias áreas de texto distintas, de forma similar a nuestra funcionalidad leer tabla en documento:

¿Cuál es el uso básico de FindMultipleTextRegions?

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-1.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindMultipleTextRegions();
OcrResult result = ocr.Read(input);
string resultText = result.Text;
$vbLabelText   $csharpLabel

Precaución A partir de IronOcr v2025.6.x, el método FindMultipleTextRegions ya no admite parámetros personalizados.

¿Cómo puedo personalizar los parámetros de FindMultipleTextRegions?

Llame a este método con parámetros personalizados para controlar cómo se detectan y separan las regiones:

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-2.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindMultipleTextRegions(Scale: 2.0, DilationAmount: -1, Binarize: true, Invert: false);
OcrResult result = ocr.Read(input);
string resultText = result.Text;
$vbLabelText   $csharpLabel

¿Cómo puedo procesar páginas individuales con FindMultipleTextRegions?

Otro método de sobrecarga de FindMultipleTextRegions toma una página OCR y devuelve una lista de páginas OCR, una por cada región de texto que contenga. Este enfoque ayuda cuando se trata de diseños complejos, de forma similar a las técnicas descritas en nuestra guía de procesamiento TIFF multipágina:

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-3.cs
using IronOcr;
using System.Collections.Generic;
using System.Linq;

int pageIndex = 0;
using var input = new OcrInput();
input.LoadImage("/path/file.png");

var selectedPage = input.GetPages().ElementAt(pageIndex);
List<OcrInputPage> textRegionsOnPage = selectedPage.FindMultipleTextRegions();
$vbLabelText   $csharpLabel

¿Cómo se utiliza GetTextRegions para obtener las coordenadas de la región de texto?

GetTextRegions devuelve una lista de áreas de recorte en las que se ha detectado texto en una página. Este método es especialmente útil cuando se necesitan las coordenadas de regiones de texto para su posterior procesamiento o cuando se implementan flujos de trabajo de OCR personalizados. Para más detalles sobre cómo trabajar con resultados, consulte nuestra documentación de la clase OcrResult:

¿Cuándo debo usar GetTextRegions en lugar de FindTextRegion?

/* :path=/static-assets/ocr/content-code-examples/how-to/computer-vision-gettextregions.cs */
using IronOcr;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.Linq;

// Create a new IronTesseract object for OCR
var ocr = new IronTesseract();

// Load an image into OcrInput
using var input = new OcrInput();
input.LoadImage("/path/file.png");

// Get the first page from the input
var firstPage = input.GetPages().First();

// Get all text regions detected on this page
List<Rectangle> textRegions = firstPage.GetTextRegions();

// Display information about each detected region
Console.WriteLine($"Found {textRegions.Count} text regions:");
foreach (var region in textRegions)
{
    Console.WriteLine($"Region at X:{region.X}, Y:{region.Y}, Width:{region.Width}, Height:{region.Height}");
}

// You can also process each region individually
foreach (var region in textRegions)
{
    var regionResult = ocr.Read(input, region);
    Console.WriteLine($"Text in region: {regionResult.Text}");
}
/* :path=/static-assets/ocr/content-code-examples/how-to/computer-vision-gettextregions.cs */
using IronOcr;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.Linq;

// Create a new IronTesseract object for OCR
var ocr = new IronTesseract();

// Load an image into OcrInput
using var input = new OcrInput();
input.LoadImage("/path/file.png");

// Get the first page from the input
var firstPage = input.GetPages().First();

// Get all text regions detected on this page
List<Rectangle> textRegions = firstPage.GetTextRegions();

// Display information about each detected region
Console.WriteLine($"Found {textRegions.Count} text regions:");
foreach (var region in textRegions)
{
    Console.WriteLine($"Region at X:{region.X}, Y:{region.Y}, Width:{region.Width}, Height:{region.Height}");
}

// You can also process each region individually
foreach (var region in textRegions)
{
    var regionResult = ocr.Read(input, region);
    Console.WriteLine($"Text in region: {regionResult.Text}");
}
$vbLabelText   $csharpLabel

¿Cuáles son los casos de uso habituales de la visión por ordenador en el reconocimiento óptico de caracteres?

La visión por ordenador mejora significativamente la precisión del reconocimiento óptico de caracteres en situaciones difíciles. He aquí algunas aplicaciones prácticas:

  1. Análisis del diseño de documentos: Identifique y procese automáticamente diferentes secciones de documentos complejos. Especialmente útil con documentos escaneados.

  2. Texto a varias columnas: Separe y lea columnas de forma independiente para periódicos o revistas. Utilice procesamiento multihilo para obtener resultados más rápidos.

  3. Contenido mixto: Distinguir entre regiones de texto y gráficos en documentos. Útil para procesar fotos con texto incrustado.

  4. Optimización del rendimiento: Centra el procesamiento de OCR solo en las áreas que contienen texto. Consulte nuestra guía de configuración de OCR rápido.

  5. Control de calidad: Verifique la detección de texto antes del procesamiento OCR completo. Nuestra función seguimiento del progreso supervisa cada etapa.

Con la configuración y los archivos de entrada adecuados, el OCR puede lograr una capacidad de lectura casi humana. Para obtener resultados óptimos, combina la visión por ordenador con nuestros filtros de optimización de imágenes para lograr la mayor precisión posible en el OCR. Cuando se trabaja con imágenes de baja calidad, nuestra guía sobre fijación de escaneados de baja calidad ofrece valiosas técnicas de preprocesamiento.

Técnicas avanzadas de visión por ordenador

Los desarrolladores que deseen superar los límites de la precisión del OCR deben tener en cuenta estos enfoques avanzados:

Preguntas Frecuentes

¿Qué es la visión por ordenador en OCR y cómo mejora la extracción de texto?

Computer Vision en IronOCR utiliza algoritmos OpenCV para detectar automáticamente regiones de texto en imágenes antes del procesamiento OCR. Esto mejora significativamente la precisión del texto con ruido, multirregión o deformado al centrar el reconocimiento de Tesseract solo en las áreas de texto identificadas, en lugar de procesar imágenes enteras.

¿Cómo puedo implementar rápidamente el OCR por visión computerizada en C#?

IronOCR le permite implementar OCR de visión por ordenador en una sola línea de código: utilice IronTesseract con el método FindTextRegion() para autodetectar la región de texto principal y, a continuación, ejecute .Read() para extraer el texto inmediatamente.

¿Por qué tengo que instalar un paquete de Visión Artificial aparte?

IronOCR requiere el paquete separado IronOcr.ComputerVision NuGet porque la funcionalidad de visión por ordenador aprovecha los algoritmos OpenCV. Estos algoritmos mejoran significativamente la precisión de la detección de texto y son esenciales para funciones como el reconocimiento de matrículas y el escaneado de pasaportes.

¿Qué paquete de Visión por Computador específico de la plataforma debo instalar?

IronOCR ofrece paquetes específicos para cada plataforma: IronOcr.ComputerVision.Windows para sistemas Windows, IronOcr.ComputerVision.Linux para distribuciones Linux y IronOcr.ComputerVision.MacOS para entornos macOS.

¿Cómo puedo detectar varias regiones de texto en una imagen?

IronOCR proporciona el método FindMultipleTextRegions para separar la imagen original en varias imágenes basándose en las regiones de texto detectadas. También puede utilizar GetTextRegions para recuperar una lista de las áreas de recorte en las que se detectó texto.

¿Puedo verificar qué regiones de texto se detectaron antes del procesamiento?

Sí, IronOCR incluye el método StampCropRectangleAndSaveAs que permite comprobar qué regiones de texto han sido detectadas por los algoritmos de Visión Artificial antes de ejecutar el proceso de OCR propiamente dicho.

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,299,091 | Versión: 2025.12 recién lanzado