Cómo corregir los colores de las imágenes para leerlas

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

por Chaknith Bin

Fijar los colores de una imagen implica varias técnicas para mejorar la legibilidad y la calidad de una imagen. IronOcr ofrece métodos de binarización, escala de grises, inversión y sustitución de colores para que el texto y el contenido de una imagen sean más legibles y estéticamente agradables, lo que es especialmente importante cuando se trabaja con OCR.(Reconocimiento óptico de caracteres) para extraer texto de imágenes. También es posible leer sólo el color del texto seleccionado.

Comience con IronOCR

Comience a usar IronOCR en su proyecto hoy con una prueba gratuita.

Primer Paso:
green arrow pointer



Binarizar Imagen Ejemplo

Este proceso convierte la imagen en un formato de dos colores, normalmente blanco y negro. Es útil para separar el texto del fondo y reducir el ruido, lo que hace que el texto se distinga mejor y sea más fácil de leer.

Para aplicar el efecto de binarización a la imagen, utilice el método Binarizar. Dado que los procesos de OCR funcionan mejor con la imagen de mayor contraste, con texto negro sobre fondo blanco, este método resulta significativo para distinguir bien el fondo 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");
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")
VB   C#

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

Imagen de muestra
Imagen binarizada

Ejemplo de imagen en escala de grises

Convertir la imagen en varios tonos de gris puede distraer menos y facilitar la lectura. Esto es especialmente útil cuando los colores originales de la imagen causan desorden visual.

Para aplicar el efecto de escala de grises a la imagen, utilice el método ToGrayScale. El proceso de escala de grises consiste en sacar la media 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()
VB   C#
Imagen de muestra
Imagen en escala de grises

Invertir imagen Ejemplo

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

Utilice el método Invertir para invertir el color de la imagen. El método acepta opcionalmente un valor booleano, que se utiliza 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()
VB   C#

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

Imagen invertida
Imagen invertida y en escala de grises

Ejemplo de sustitución de color

Esta técnica permite sustituir determinados colores de la imagen por otros, lo que puede ayudar a resaltar o quitar énfasis a ciertos elementos. Suele utilizarse para resaltar el texto o corregir contrastes de color problemáticos.

Para utilizar el método ReplaceColor, especifique el color actual a sustituir 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 las 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")
VB   C#
Imagen de muestra
Imagen en color sustituida

Ejemplo de color de texto específico de lectura

El objetivo de esta función es leer sólo el color de texto especificado. Utilice el método SelectTextColor para especificar el color que IronOcr debe enfocar, 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)
VB   C#

A continuación, encontrará el resultado del OCR, en el que sólo se leerá el texto de color anaranjado.

Resultado OCR
Chaknith related to Ejemplo de color de texto específico de lectura

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.