Cómo corregir los colores de las imágenes para su lectura en C

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

Corregir colores de imagen implica varias técnicas para mejorar la legibilidad y calidad de una imagen. IronOcr ofrece métodos de binarización, escala de grises, inversión y reemplazo de color para hacer que el texto y el contenido dentro de una imagen sean más legibles y estéticamente agradables, lo cual es especialmente importante al trabajar con OCR (Reconocimiento Óptico de Caracteres) para extraer texto de imágenes. También es posible leer solo el color de texto seleccionado.

como-encabezado:2(Inicio rápido: Aislar colores de texto específicos de una vez)

Utiliza el método SelectTextColor de IronOCR para centrar el OCR solo en el color de texto que te interesa, sin manipulación compleja de la imagen. En una línea, puedes cargar una imagen, elegir el color de texto y la tolerancia, y extraer solo ese texto para obtener resultados precisos 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.

    new IronTesseract().Read(new IronOcr.OcrImageInput("sample.jpg").SelectTextColor(new IronSoftware.Drawing.Color("#DB645C"), 60));
  3. Despliegue para probar en su entorno real

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


Ejemplo de binarización de imágenes

Este proceso convierte la imagen en un formato de dos colores, típicamente blanco y negro. Es útil para separar el texto del fondo y reducir el ruido, haciendo el texto más distinto y fácil de leer.

Para aplicar el efecto de binarización a la imagen, utiliza el método Binarize. Dado que los procesos OCR funcionan mejor con la imagen de mayor contraste, que presenta texto negro sobre un fondo blanco, este método resulta significativo para hacer que el fondo sea muy distinto de los caracteres.

:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-binarize-image.cs
using IronOcr;

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

// Add image
using var imageInput = new OcrImageInput("sample.jpg");
// Apply binarize affect
imageInput.Binarize();

// Export the modified image
imageInput.SaveAsImages("binarize.jpg");
Imports IronOcr

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Add image
Private imageInput = New OcrImageInput("sample.jpg")
' Apply binarize affect
imageInput.Binarize()

' Export the modified image
imageInput.SaveAsImages("binarize.jpg")
$vbLabelText   $csharpLabel

Para mayor comodidad, puedes exportar la imagen modificada utilizando el método SaveAsImages. A continuación se encuentra una comparación de la imagen antes y después de la binarización.

Sample image
Binarized image

Ejemplo de imagen en escala de grises

Convertir la imagen en varios tonos de gris puede hacerla menos distraída y más amigable para el lector. Esto es especialmente útil cuando los colores originales en la imagen están causando desorden visual.

Para aplicar el efecto de escala de grises a la imagen, usa el método ToGrayScale. El proceso de escala de grises implica tomar el promedio de los valores R, G y B.

:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-grayscale-image.cs
// Apply grayscale affect
imageInput.ToGrayScale();
' Apply grayscale affect
imageInput.ToGrayScale()
$vbLabelText   $csharpLabel
Sample image
Grayscaled image

Ejemplo de imagen invertida

Invertir los colores puede mejorar el contraste. Por ejemplo, convertir texto blanco sobre un fondo negro en texto negro sobre un fondo blanco puede mejorar la legibilidad.

Usa el método Invert para invertir el color de la imagen. El método acepta opcionalmente un valor booleano, que se usa para eliminar todos los canales de color y devolver una imagen en escala de grises.

:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-invert-image.cs
// Apply invert affect
imageInput.Invert();
' Apply invert affect
imageInput.Invert()
$vbLabelText   $csharpLabel

Las siguientes imágenes muestran el método Invert con y sin la opción de escala de grises.

Invertido image
Invertido and grayscaled image

Ejemplo de reemplazo de color

Esta técnica te permite reemplazar colores específicos en la imagen por otros, lo que puede ayudar a resaltar o desatacar ciertos elementos. A menudo se usa para hacer el texto más prominente o para corregir contrastes problemáticos de color.

Para usar el método ReplaceColor, especifica el color actual a ser reemplazado así como el nuevo color. El tercer parámetro del método, que corresponde al valor de tolerancia, también es importante. Se requiere una mayor tolerancia en imágenes borrosas para lograr el resultado deseado.

:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-replace-color.cs
using IronOcr;

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

// Add image
using var imageInput = new OcrImageInput("sample.jpg");
IronSoftware.Drawing.Color currentColor = new IronSoftware.Drawing.Color("#DB645C");
IronSoftware.Drawing.Color newColor = IronSoftware.Drawing.Color.DarkCyan;

// Replace color
imageInput.ReplaceColor(currentColor, newColor, 80);

// Export the modified image
imageInput.SaveAsImages("replaceColor");
Imports IronOcr

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Add image
Private imageInput = New OcrImageInput("sample.jpg")
Private currentColor As New IronSoftware.Drawing.Color("#DB645C")
Private newColor As IronSoftware.Drawing.Color = IronSoftware.Drawing.Color.DarkCyan

' Replace color
imageInput.ReplaceColor(currentColor, newColor, 80)

' Export the modified image
imageInput.SaveAsImages("replaceColor")
$vbLabelText   $csharpLabel
Sample image
Replaced color image

Leer ejemplo de color de texto específico

Esta característica tiene como objetivo leer solo el color de texto especificado. Usa el método SelectTextColor para especificar el color en el que desea que IronOcr se enfoque, junto con el valor de tolerancia. El valor de tolerancia acepta un rango de 0-255, que representa la diferencia permitida entre el color del píxel y el color seleccionado para cada valor R, G y B en el espacio de color.

:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-select-text-color.cs
using IronOcr;
using System;

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

// Add image
using var imageInput = new OcrImageInput("sample.jpg");
// Text color to focus on
IronSoftware.Drawing.Color focusColor = new IronSoftware.Drawing.Color("#DB645C");

// Specify which text color to read
imageInput.SelectTextColor(focusColor, 60);

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

// Output result to console
Console.WriteLine(ocrResult.Text);
Imports IronOcr
Imports System

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Add image
Private imageInput = New OcrImageInput("sample.jpg")
' Text color to focus on
Private focusColor As New IronSoftware.Drawing.Color("#DB645C")

' Specify which text color to read
imageInput.SelectTextColor(focusColor, 60)

' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)

' Output result to console
Console.WriteLine(ocrResult.Text)
$vbLabelText   $csharpLabel

A continuación, encontrarás el resultado de OCR, que se concibe para leer solo el texto en un color anaranjado.

Resultado de OCR

Archivos PDF con capacidad de búsqueda

Además de proporcionar opciones de filtrado de imágenes, IronOcr permite a los desarrolladores guardar PDFs modificados ya sea con o sin estos filtros aplicados. El método SaveAsSearchablePdf incluye un indicador booleano como su segundo parámetro, que permite a los usuarios especificar si guardar el PDF con los filtros activados o desactivados.

:path=/static-assets/ocr/content-code-examples/how-to/image-quality-correction-searchable-pdf.cs
using IronOcr;

var ocr = new IronTesseract();
var ocrInput = new OcrInput();

// Load a PDF file
ocrInput.LoadPdf("invoice.pdf");

// Apply gray scale filter
ocrInput.ToGrayScale();
OcrResult result = ocr.Read(ocrInput);

// Save the result as a searchable PDF with filters applied
result.SaveAsSearchablePdf("outputGrayscale.pdf", true);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Preguntas Frecuentes

¿Cómo puedo mejorar los colores de las imágenes para OCR en .NET C#?

Puede mejorar los colores de las imágenes para OCR en .NET C# utilizando IronOCR. Comience descargando la biblioteca IronOCR desde NuGet, importe la imagen y aplique técnicas de corrección de color como binarización, escala de grises e inversión para mejorar la legibilidad del texto.

¿Cuál es el papel de la binarización en la corrección de color de imágenes?

La binarización en la corrección de color de imágenes convierte una imagen en formato blanco y negro, lo que ayuda a separar el texto del fondo, reduciendo el ruido y haciendo el texto más distinguible para obtener mejores resultados de OCR usando IronOCR.

¿Cómo beneficia la aplicación de efectos de escala de grises a los procesos de OCR?

La aplicación de efectos de escala de grises reduce las distracciones de color convirtiendo la imagen en tonos de gris. Esta simplificación hace que la imagen esté menos desordenada y mejora la legibilidad del texto, lo que es beneficioso para los procesos de OCR con IronOCR.

¿Cuáles son las ventajas de invertir los colores de las imágenes para la extracción de texto?

Invertir los colores de las imágenes aumenta el contraste al alterar los esquemas de color, como cambiar el texto blanco sobre un fondo negro a texto negro sobre un fondo blanco. Esta mejora del contraste puede mejorar la precisión de la extracción de texto en OCR al usar IronOCR.

¿Cómo se pueden cambiar colores específicos en una imagen para obtener mejores resultados de OCR?

Para cambiar colores específicos en una imagen para obtener mejores resultados de OCR, utilice el método ReplaceColor en IronOCR. Especifique el color original, el nuevo color y ajuste el valor de tolerancia para afinar el reemplazo de color.

¿Es posible enfocarse en texto de un color específico durante OCR?

Sí, puede enfocarse en texto de un color específico durante OCR utilizando el método SelectTextColor en IronOCR. Esto le permite especificar el color del texto objetivo y un valor de tolerancia, mejorando la precisión de OCR para texto en color.

¿Cómo se exportan las imágenes modificadas después de la corrección de color?

Después de aplicar la corrección de color a las imágenes, puede exportarlas utilizando el método SaveAsImages en IronOCR. Esto le permite guardar las imágenes modificadas para su procesamiento o visualización posterior.

¿Por qué es importante ajustar el contraste de las imágenes para la precisión de OCR?

Ajustar el contraste de las imágenes es crucial para la precisión de OCR porque ayuda a distinguir el texto del fondo, haciendo que los caracteres sean más prominentes y fáciles de extraer para los algoritmos de OCR, especialmente cuando se usa IronOCR.

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
Revisado por
Jeff Fritz
Jeffrey T. Fritz
Gerente Principal de Programas - Equipo de la Comunidad .NET
Jeff también es Gerente Principal de Programas para los equipos de .NET y Visual Studio. Es el productor ejecutivo de la serie de conferencias virtuales .NET Conf y anfitrión de 'Fritz and Friends', una transmisión en vivo para desarrolladores que se emite dos veces a la semana donde habla sobre tecnología y escribe código junto con la audiencia. Jeff escribe talleres, presentaciones, y planifica contenido para los eventos de desarrolladores más importantes de Microsoft, incluyendo Microsoft Build, Microsoft Ignite, .NET Conf y la Cumbre de Microsoft MVP.
¿Listo para empezar?
Nuget Descargas 5,167,857 | Version: 2025.11 recién lanzado