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

Cómo encontrar texto con visión artificial en C

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

IronOCR utiliza OpenCV para usar Visión por Computadora para detectar áreas donde existe texto en una imagen. Esto es útil para imágenes que contienen mucho ruido, imágenes con texto en muchos lugares diferentes e imágenes donde el texto está deformado. El uso de la visión por computadora en IronOCR determinará dónde existen las regiones de texto y luego usará Tesseract para intentar leer esas regiones.

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

Este ejemplo muestra lo fácil que es comenzar: solo carga una imagen, deja que la visión por computadora de IronOCR encuentre automáticamente la región principal de texto con FindTextRegion(), y luego ejecuta inmediatamente .Read(...) para extraer el texto. Solo toma una línea simple pasar de la imagen a la salida de OCR.

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

Instalación de IronOCR.ComputerVision mediante paquete NuGet

Métodos de OpenCV que realizan visión por computadora en IronOCR son visibles en el paquete regular de NuGet de IronOCR.

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.

  • Windows: IronOcr.ComputerVision.Windows
  • Linux: IronOcr.ComputerVision.Linux
  • macOS: IronOcr.ComputerVision.MacOS
  • macOS ARM: IronOcr.ComputerVision.MacOS.ARM

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

Install-Package IronOcr.ComputerVision.Windows

Esto proporcionará los ensamblajes necesarios para usar la visión por computadora de IronOCR con nuestro archivo de modelo.

Funcionalidad y API

Se incluyen ejemplos de código más adelante en este tutorial. Aquí hay una visión general de los métodos que están disponibles actualmente:

Método Explicación
BuscarRegiónDeTexto Detecta 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 texto Detecta áreas que contienen elementos de texto y divide la página en imágenes separadas según las regiones de texto.
Obtener regiones de texto Scans the image and returns a list of text regions as `List`.

BuscarRegiónDeTexto

El uso de FindTextRegion utilizará visión por computadora para detectar regiones que contienen elementos de texto en cada página de un objeto OcrInput.

: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;
Imports IronOcr

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("/path/file.png")

input.FindTextRegion()
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
$vbLabelText   $csharpLabel

Precaución Esta sobrecarga de método actualmente está obsoleta en IronOcr 2025.6.x y no acepta parámetros personalizados.

Opcionalmente se puede llamar con parámetros personalizados:

: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;
Imports IronOcr

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("/path/file.png")

input.FindTextRegion(Scale:= 2.0, DilationAmount:= 20, Binarize:= True, Invert:= True)
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
$vbLabelText   $csharpLabel

En este ejemplo, usaré la siguiente imagen para un método que estoy escribiendo el cual necesita recortar áreas que contienen texto, pero las imágenes de entrada pueden variar en la ubicación del texto. En este caso, puedo usar FindTextRegion para reducir el escaneo a un área que la visión por computadora ha detectado texto. Esta es una imagen de ejemplo:

Imagen con texto
: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);
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
Imports System.Linq

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("wh-words-sign.jpg")

' Find the text region using Computer Vision
Dim textCropArea As Rectangle = 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:
Dim ocrResult = ocr.Read("wh-words-sign.jpg", textCropArea)
Console.WriteLine(ocrResult.Text)
$vbLabelText   $csharpLabel

Ahora este código tiene dos salidas, la primera es un archivo .png guardado por StampCropRectangleAndSaveAs que se usa para depuración. Podemos ver dónde IronCV (Visión por computadora) pensó que estaba el texto:

Imagen con área de texto resaltada

Parece bastante bueno. Ahora la segunda salida es el texto en sí que es:

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

Buscar múltiples regiones de texto

El uso de FindMultipleTextRegions toma todas las páginas de un objeto OcrInput y utiliza la visión por computadora para detectar áreas que contienen elementos de texto y divide la entrada en imágenes separadas según las regiones de texto:

: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;
Imports IronOcr

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("/path/file.png")

input.FindMultipleTextRegions()
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
$vbLabelText   $csharpLabel

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

Opcionalmente se puede llamar con parámetros personalizados:

: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;
Imports IronOcr

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("/path/file.png")

input.FindMultipleTextRegions(Scale:= 2.0, DilationAmount:= -1, Binarize:= True, Invert:= False)
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
$vbLabelText   $csharpLabel

Otro método de sobrecarga de FindMultipleTextRegions toma una página de OCR y devuelve una lista de páginas de OCR, una para cada región de texto en ella:

: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();
Imports IronOcr
Imports System.Collections.Generic
Imports System.Linq

Private pageIndex As Integer = 0
Private input = New OcrInput()
input.LoadImage("/path/file.png")

Dim selectedPage = input.GetPages().ElementAt(pageIndex)
Dim textRegionsOnPage As List(Of OcrInputPage) = selectedPage.FindMultipleTextRegions()
$vbLabelText   $csharpLabel

Obtener regiones de texto

El uso de GetTextRegions devuelve una lista de áreas recortadas donde se detectó texto en una página:

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-gettextregions.cs
using IronOcr;
using IronSoftware.Drawing;
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<Rectangle> regions = selectedPage.GetTextRegions();
Imports IronOcr
Imports IronSoftware.Drawing
Imports System.Collections.Generic
Imports System.Linq

Private pageIndex As Integer = 0
Private input = New OcrInput()
input.LoadImage("/path/file.png")

Dim selectedPage = input.GetPages().ElementAt(pageIndex)
' List<Rectangle> regions = selectedPage.GetTextRegions();
$vbLabelText   $csharpLabel

Guías de casos de uso específicos

Con la configuración correcta y los archivos de entrada, el OCR puede ser una herramienta muy poderosa. Puede imitar casi perfectamente la capacidad de lectura de un humano.

Preguntas Frecuentes

¿Cómo puedo aprovechar la visión por computadora para la detección de texto en imágenes?

IronOCR se puede usar para mejorar la detección de texto en imágenes utilizando su integración con OpenCV. Métodos como FindTextRegion y FindMultipleTextRegions le permiten localizar y manipular efectivamente áreas de texto.

¿Qué pasos se requieren para instalar IronOCR para visión por computadora en diferentes sistemas operativos?

Para usar IronOCR en diferentes sistemas operativos, puede instalar el paquete IronOCR.ComputerVision a través de NuGet. Use el comando Install-Package IronOcr.ComputerVision.Windows para Windows, con paquetes similares disponibles para Linux y macOS.

¿Qué funcionalidad proporciona el método FindTextRegion?

El método FindTextRegion en IronOCR identifica áreas en una imagen donde hay texto presente, permitiendo que Tesseract busque texto solo dentro de esas regiones especificadas, mejorando la precisión del OCR.

¿Cómo mejoran los parámetros personalizados la detección de regiones de texto?

Puede refinar la detección de regiones de texto en IronOCR utilizando parámetros personalizados con el método FindTextRegion, como establecer la altura mínima del texto y permitir subregiones, para identificar más precisamente áreas de texto en imágenes.

¿Por qué es beneficioso detectar múltiples regiones de texto en una imagen?

Detectar múltiples regiones de texto usando el método FindMultipleTextRegions en IronOCR ayuda a dividir una imagen en secciones separadas basadas en texto, lo cual es particularmente útil para procesar documentos con múltiples bloques de texto como facturas y subtítulos.

¿Cómo se pueden recuperar las áreas de texto detectadas de una imagen?

El método GetTextRegions en IronOCR le permite recuperar una lista de áreas de CropRectangle donde se detectó texto dentro de una imagen, permitiendo un mayor procesamiento o manipulación de esas regiones de texto.

¿Cuáles son las características clave de las capacidades de visión por computadora de IronOCR?

Las características de visión por computadora de IronOCR incluyen detección de regiones de texto a través de métodos como FindTextRegion y FindMultipleTextRegions, configuraciones personalizables de OCR y compatibilidad con múltiples sistemas operativos para mejorar la precisión de la detección de texto.

¿Cómo procesa IronOCR imágenes con múltiples regiones de texto?

IronOCR utiliza el método FindMultipleTextRegions para procesar imágenes dividiéndolas en imágenes separadas basadas en regiones de texto detectadas, permitiendo un análisis detallado y manipulación de cada área de texto.

¿Dónde puedo encontrar ejemplos de código para usar métodos de visión por computadora en IronOCR?

El tutorial proporciona ejemplos de código que demuestran el uso de métodos como FindTextRegion y FindMultipleTextRegions con IronOCR, ilustrando aplicaciones prácticas como la lectura de matrículas o el procesamiento de facturas.

¿Qué se necesita para utilizar las características de visión por computadora de IronOCR en C#?

Para usar las características de visión por computadora de IronOCR en C#, debe instalar el paquete IronOcr.ComputerVision a través de NuGet e incluir los espacios de nombres necesarios en su proyecto para acceder a los métodos de detección de texto.

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