# Cómo arreglar los colores de las imágenes para leerlas en C#
Corrige los colores de las imágenes en C# utilizando los métodos de binarización, escala de grises, inversión y sustitución de color de IronOCR para mejorar la legibilidad del texto y la precisión del OCR. Lea los colores de texto específicos para la extracción dirigida.
*as-heading:2(Guía rápida: Aísla Colores Específicos de Texto)*
Utilice el método `SelectTextColor` de IronOCR para enfocar el OCR en colores de texto específicos, sin necesidad de manipulación compleja de imágenes. Cargue una imagen, elija el color del texto y la tolerancia, y extraiga sólo ese texto para obtener resultados de OCR precisos.
```cs
:title=Fix Text Color Fast with IronOCR
new IronTesseract().Read(new IronOcr.OcrImageInput("sample.jpg").SelectTextColor(new IronSoftware.Drawing.Color("#DB645C"), 60));
```
<div class="hsg-featured-snippet">
<h2>Cómo corregir los colores de las imágenes para su lectura en C#</h2>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronOcr/">Descargue una biblioteca de C# para corregir los colores de las imágenes</a></li>
<li>Importe el documento PDF y las imágenes para su lectura</li>
<li>Aplicar efectos de color: binarización, escala de grises, inversión y sustitución de color</li>
<li>Exporte la imagen corregida para su visualización</li>
<li>Leer colores de texto específicos utilizando <code>SelectTextColor</code></li>
</ol>
</div>
<br class="clear" />
## ¿Cómo binarizar una imagen para mejorar el reconocimiento óptico de caracteres?
La binarización convierte las imágenes a un formato de dos colores, normalmente blanco y negro. De este modo se separa el texto del fondo y se reduce el ruido, con lo que el texto se distingue mejor y es más fácil de leer.
### ¿Por qué la binarización mejora la precisión del OCR?
Aplique binarización usando el método `Binarize`. El OCR funciona mejor con imágenes de alto contraste con texto negro sobre fondo blanco. Este método crea una clara distinción entre el fondo y los caracteres.
La binarización es excelente con documentos escaneados que tienen una iluminación desigual o ruido de fondo. El algoritmo analiza las imágenes y determina los umbrales óptimos para separar el texto en primer plano del fondo. Para conocer las técnicas avanzadas de preprocesamiento, consulte la guía [OCR Image Optimization Filters](https://ironsoftware.com/csharp/ocr/examples/ocr-image-filters-for-net-tesseract/).
### ¿Cuál es la implementación de código para la binarización?
```csharp
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");
```
Para el procesamiento por lotes, combine la binarización con otros filtros. Utilice el [Asistente para filtros](https://ironsoftware.com/csharp/ocr/examples/filter-wizard/) para determinar la mejor combinación de filtros para sus imágenes.
### ¿Cómo puedo exportar y comparar resultados?
Exporte imágenes modificadas usando el método `SaveAsImages`. Compara las imágenes antes y después de la binarización.
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-quality-correction/sample.jpg" alt="Imagen de muestra con texto rojo y negro sobre fondo azul grisáceo que muestra los desafíos del OCR antes de la binarización" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Antes</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-color-correction/binarize_0.png" alt="Versión binarizada que muestra texto negro nítido sobre fondo blanco puro para un procesamiento OCR óptimo" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Después</p>
</div>
</div>
<hr />
## ¿Cómo convertir imágenes a escala de grises para leerlas mejor?
La conversión de las imágenes a escala de grises reduce el desorden visual y mejora la legibilidad. Esto ayuda cuando los colores originales distraen del contenido.
### ¿Cuándo debería utilizar la escala de grises en lugar de otros métodos?
Aplique escala de grises usando el método `ToGrayScale`. El proceso promedia los valores R, G y B.
La escala de grises funciona bien con fondos de color o marcas de agua que interfieran con el reconocimiento de texto. A diferencia de la binarización, la escala de grises conserva los detalles en imágenes con variaciones sutiles. Utilízalo para fotografías con texto incrustado o diseños complejos. Para escaneos de baja calidad, consulte [Fijación de escaneos e imágenes de baja calidad](https://ironsoftware.com/csharp/ocr/examples/ocr-low-quality-scans-tesseract/).
### ¿Cuál es el código simple para la conversión a escala de grises?
```csharp
// Apply grayscale affect
imageInput.ToGrayScale();
```
Para obtener distintas calidades de imagen, combine la escala de grises con otros pasos de preprocesamiento. La documentación de [OcrInput Class](https://ironsoftware.com/csharp/ocr/examples/csharp-ocr-input-for-iron-tesseract/) explica el encadenamiento de varios filtros.
### ¿Cómo se compara la escala de grises con el original?
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-quality-correction/sample.jpg" alt="Texto de muestra con encabezados rojos y cuerpo de texto negro que muestra varios colores antes de la conversión a escala de grises" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Antes</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-color-correction/grayscale_0.webp" alt="Documento en escala de grises con texto nítido sobre ejecutivos tecnológicos, demostrando una legibilidad mejorada tras la conversión" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Después</p>
</div>
</div>
<hr />
## ¿Cuándo debo invertir los colores de una imagen?
Invertir los colores mejora el contraste. Convertir texto blanco sobre fondo negro en texto negro sobre fondo blanco mejora la legibilidad.
### ¿Cómo implementar la inversión del color?
Utilice el método `Invert` para invertir colores. Pase un valor booleano para eliminar los canales de color y devolver la escala de grises.
La inversión del color se encarga de las imágenes negativas o de las capturas de pantalla de temática oscura. Las aplicaciones modernas utilizan interfaces de modo oscuro que suponen un reto para el OCR tradicional. La inversión de estas imágenes garantiza un reconocimiento óptimo. Para varios tipos de imágenes, consulte la [Guía de configuración de Fast OCR](https://ironsoftware.com/csharp/ocr/examples/tune-tesseract-for-speed-in-dotnet/).
```csharp
// Apply invert affect
imageInput.Invert();
```
Para el procesamiento por lotes con tipos de documentos mixtos, implemente la detección automática de fondo oscuro. las funciones [Computer Vision](https://ironsoftware.com/csharp/ocr/how-to/computer-vision/) de IronOCR identifican cuándo es necesaria la inversión.
### ¿Cuál es la diferencia entre las opciones de inversión?
Compare el método `Invert` con y sin escala de grises:
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-color-correction/invert_0.webp" alt="Documento con colores invertidos que mantiene los canales de color originales con valores invertidos" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Invertido</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-color-correction/invertTrue_0.webp" alt="Texto empresarial con colores invertidos que muestra texto blanco sobre fondo oscuro, demostrando el efecto de inversión de color" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Invertido y en escala de grises</p>
</div>
</div>
<hr />
## ¿Cómo puedo reemplazar colores específicos en una imagen?
Reemplace colores específicos para resaltar o restar énfasis a los elementos. Utilícelo para mejorar la prominencia del texto o corregir contrastes problemáticos.
### ¿Por qué es importante la tolerancia en la sustitución de colores?
El método `ReplaceColor` requiere el color actual, el nuevo color y el valor de tolerancia. Mayor tolerancia maneja mejor las imágenes borrosas.
La tolerancia determina hasta qué punto los píxeles deben coincidir con el color de destino. Los valores bajos (0-50) se adaptan a colores uniformes. Los valores más altos (100-200) se refieren a texto con antialiasing o artefactos de compresión. Esto ayuda con los documentos escaneados en los que el sangrado de la tinta o la textura del papel crean variaciones.
### ¿Cómo implementar la sustitución de colores?
```csharp
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");
```
### ¿Cómo se manejan los escenarios avanzados de sustitución de colores?
Cadena de sustituciones múltiples para escenarios complejos:
```cs
/* :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-multiple-replacements.cs */
// Replace multiple colors in sequence
using var imageInput = new OcrImageInput("multi-color-document.jpg");
// Replace red text with black
imageInput.ReplaceColor(IronSoftware.Drawing.Color.Red, IronSoftware.Drawing.Color.Black, 70);
// Replace blue headers with dark gray
imageInput.ReplaceColor(IronSoftware.Drawing.Color.Blue, IronSoftware.Drawing.Color.DarkGray, 60);
// Replace light yellow background with white
imageInput.ReplaceColor(new IronSoftware.Drawing.Color("#FFFACD"), IronSoftware.Drawing.Color.White, 40);
// Perform OCR on the cleaned image
var result = ocrTesseract.Read(imageInput);
```
Para sustituciones de color complejas, consulte [Filtros de corrección de imágenes](https://ironsoftware.com/csharp/ocr/how-to/image-quality-correction/) para conocer técnicas de preprocesamiento adicionales.
### ¿Cuáles son los resultados visuales de la sustitución de colores?
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-quality-correction/sample.jpg" alt="Muestra de texto con nombres y contenido de color naranja rojizo sobre fondo azul que muestra los colores originales antes del reemplazo" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Antes</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-color-correction/replaceColor_0.webp" alt="Document after color replacement showing dark cyan headers replacing original orange-red text" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Después</p>
</div>
</div>
<hr />
## ¿Cómo puedo leer solo determinados colores de texto?
Lea colores de texto específicos usando el método `SelectTextColor`. Especifique el color de destino y la tolerancia (0-255). La tolerancia representa las diferencias admisibles entre el píxel y el color seleccionado para los valores R, G y B.
### ¿Cómo afecta la tolerancia de color a los resultados?
```csharp
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);
```
Utilice la lectura selectiva de colores para formularios con secciones codificadas por colores, extraer texto resaltado o leer mensajes de advertencia específicos. Para la extracción de datos estructurados, véase [OcrResult Class](https://ironsoftware.com/csharp/ocr/examples/results-objects/) para el procesamiento avanzado.
### ¿Qué resultados puedo esperar de la selección de colores?
El resultado del OCR solo lee texto de color naranja:
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/ocr/how-to/image-color-correction/read-certain-text-color.webp" alt="Consola de depuración que muestra el texto naranja extraído del OCR: MASAYOSHI SON y YASUMITSU SHIGETA de un documento comercial" class="img-responsive add-shadow" />
</div>
</div>
## ¿Cómo puedo guardar archivos PDF modificados con filtros aplicados?
IronOCR guarda PDF modificados con o sin filtros. El segundo parámetro del método `SaveAsSearchablePdf` especifica si se debe guardar con filtros aplicados.
### ¿Cuál es la implementación de los PDF con función de búsqueda?
```cs
using IronOcr;
// Create OCR engine: filters are applied at the OcrInput level, so no configuration changes are needed here
var ocr = new IronTesseract();
var ocrInput = new OcrInput();
// Load the scanned PDF as the OCR source
ocrInput.LoadPdf("invoice.pdf");
// Convert to grayscale: removes color noise that can reduce OCR accuracy on color-printed documents
ocrInput.ToGrayScale();
// Run OCR on the preprocessed input
OcrResult result = ocr.Read(ocrInput);
// Write the searchable PDF; true = embed the grayscale-filtered image rather than the original color scan
result.SaveAsSearchablePdf("outputGrayscale.pdf", true);
```
### ¿Cuándo debo aplicar filtros al PDF guardado?
Aplique filtros para crear documentos más limpios y legibles. Esto ayuda a archivar o compartir documentos entre distintos dispositivos. Para obtener más información, consulte [Create Searchable PDFs by OCR](https://ironsoftware.com/csharp/ocr/examples/tesseract-create-searchable-pdf/).
Para documentos complejos con tablas, explore [Leer tabla en documento](https://ironsoftware.com/csharp/ocr/examples/read-table-in-document/) para una extracción especializada. Para el procesamiento de grandes volúmenes, consulte [Multithreaded Tesseract OCR](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multithreading-for-speed/) para optimizar la aplicación del filtro en varios documentos.
Corrige los colores de las imágenes en C# utilizando los métodos de binarización, escala de grises, inversión y sustitución de color de IronOCR para mejorar la legibilidad del texto y la precisión del OCR. Lea los colores de texto específicos para la extracción dirigida.
Guía rápida: Aísla Colores Específicos de Texto
Utilice el método SelectTextColor de IronOCR para enfocar el OCR en colores de texto específicos, sin necesidad de manipulación compleja de imágenes. Cargue una imagen, elija el color del texto y la tolerancia, y extraiga sólo ese texto para obtener resultados de OCR precisos.
Importe el documento PDF y las imágenes para su lectura
Aplicar efectos de color: binarización, escala de grises, inversión y sustitución de color
Exporte la imagen corregida para su visualización
Leer colores de texto específicos utilizando SelectTextColor
¿Cómo binarizar una imagen para mejorar el reconocimiento óptico de caracteres?
La binarización convierte las imágenes a un formato de dos colores, normalmente blanco y negro. De este modo se separa el texto del fondo y se reduce el ruido, con lo que el texto se distingue mejor y es más fácil de leer.
¿Por qué la binarización mejora la precisión del OCR?
Aplique binarización usando el método Binarize. El OCR funciona mejor con imágenes de alto contraste con texto negro sobre fondo blanco. Este método crea una clara distinción entre el fondo y los caracteres.
La binarización es excelente con documentos escaneados que tienen una iluminación desigual o ruido de fondo. El algoritmo analiza las imágenes y determina los umbrales óptimos para separar el texto en primer plano del fondo. Para conocer las técnicas avanzadas de preprocesamiento, consulte la guía OCR Image Optimization Filters.
¿Cuál es la implementación de código para la binarización?
using IronOcr;// Instantiate IronTesseractIronTesseract ocrTesseract = new IronTesseract();// Add imageusing var imageInput = new OcrImageInput("sample.jpg");// Apply binarize affectimageInput.Binarize();// Export the modified imageimageInput.SaveAsImages("binarize.jpg");
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");
ImportsIronOcr' Instantiate IronTesseractPrivate ocrTesseract As New IronTesseract()' Add imagePrivate imageInput = New OcrImageInput("sample.jpg")' Apply binarize affectimageInput.Binarize()' Export the modified imageimageInput.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")
Para el procesamiento por lotes, combine la binarización con otros filtros. Utilice el Asistente para filtros para determinar la mejor combinación de filtros para sus imágenes.
¿Cómo puedo exportar y comparar resultados?
Exporte imágenes modificadas usando el método SaveAsImages. Compara las imágenes antes y después de la binarización.
Antes
Después
¿Cómo convertir imágenes a escala de grises para leerlas mejor?
La conversión de las imágenes a escala de grises reduce el desorden visual y mejora la legibilidad. Esto ayuda cuando los colores originales distraen del contenido.
¿Cuándo debería utilizar la escala de grises en lugar de otros métodos?
Aplique escala de grises usando el método ToGrayScale. El proceso promedia los valores R, G y B.
La escala de grises funciona bien con fondos de color o marcas de agua que interfieran con el reconocimiento de texto. A diferencia de la binarización, la escala de grises conserva los detalles en imágenes con variaciones sutiles. Utilízalo para fotografías con texto incrustado o diseños complejos. Para escaneos de baja calidad, consulte Fijación de escaneos e imágenes de baja calidad.
¿Cuál es el código simple para la conversión a escala de grises?
Para obtener distintas calidades de imagen, combine la escala de grises con otros pasos de preprocesamiento. La documentación de OcrInput Class explica el encadenamiento de varios filtros.
¿Cómo se compara la escala de grises con el original?
Antes
Después
¿Cuándo debo invertir los colores de una imagen?
Invertir los colores mejora el contraste. Convertir texto blanco sobre fondo negro en texto negro sobre fondo blanco mejora la legibilidad.
¿Cómo implementar la inversión del color?
Utilice el método Invert para invertir colores. Pase un valor booleano para eliminar los canales de color y devolver la escala de grises.
La inversión del color se encarga de las imágenes negativas o de las capturas de pantalla de temática oscura. Las aplicaciones modernas utilizan interfaces de modo oscuro que suponen un reto para el OCR tradicional. La inversión de estas imágenes garantiza un reconocimiento óptimo. Para varios tipos de imágenes, consulte la Guía de configuración de Fast OCR.
// Apply invert affectimageInput.Invert();
// Apply invert affect
imageInput.Invert();
' Apply invert affectimageInput.Invert()
' Apply invert affect
imageInput.Invert()
Para el procesamiento por lotes con tipos de documentos mixtos, implemente la detección automática de fondo oscuro. las funciones Computer Vision de IronOCR identifican cuándo es necesaria la inversión.
¿Cuál es la diferencia entre las opciones de inversión?
Compare el método Invert con y sin escala de grises:
Invertido
Invertido y en escala de grises
¿Cómo puedo reemplazar colores específicos en una imagen?
Reemplace colores específicos para resaltar o restar énfasis a los elementos. Utilícelo para mejorar la prominencia del texto o corregir contrastes problemáticos.
¿Por qué es importante la tolerancia en la sustitución de colores?
El método ReplaceColor requiere el color actual, el nuevo color y el valor de tolerancia. Mayor tolerancia maneja mejor las imágenes borrosas.
La tolerancia determina hasta qué punto los píxeles deben coincidir con el color de destino. Los valores bajos (0-50) se adaptan a colores uniformes. Los valores más altos (100-200) se refieren a texto con antialiasing o artefactos de compresión. Esto ayuda con los documentos escaneados en los que el sangrado de la tinta o la textura del papel crean variaciones.
¿Cómo implementar la sustitución de colores?
using IronOcr;// Instantiate IronTesseractIronTesseract ocrTesseract = new IronTesseract();// Add imageusing var imageInput = new OcrImageInput("sample.jpg");IronSoftware.Drawing.Color currentColor = new IronSoftware.Drawing.Color("#DB645C");IronSoftware.Drawing.Color newColor = IronSoftware.Drawing.Color.DarkCyan;// Replace colorimageInput.ReplaceColor(currentColor, newColor, 80);// Export the modified imageimageInput.SaveAsImages("replaceColor");
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");
ImportsIronOcr' Instantiate IronTesseractDim ocrTesseract As New IronTesseract()' Add imageUsing imageInput As New OcrImageInput("sample.jpg") Dim currentColor As New IronSoftware.Drawing.Color("#DB645C") Dim newColor AsIronSoftware.Drawing.Color = IronSoftware.Drawing.Color.DarkCyan ' Replace color imageInput.ReplaceColor(currentColor, newColor, 80) ' Export the modified image imageInput.SaveAsImages("replaceColor")EndUsing
Imports IronOcr
' Instantiate IronTesseract
Dim ocrTesseract As New IronTesseract()
' Add image
Using imageInput As New OcrImageInput("sample.jpg")
Dim currentColor As New IronSoftware.Drawing.Color("#DB645C")
Dim newColor As IronSoftware.Drawing.Color = IronSoftware.Drawing.Color.DarkCyan
' Replace color
imageInput.ReplaceColor(currentColor, newColor, 80)
' Export the modified image
imageInput.SaveAsImages("replaceColor")
End Using
¿Cómo se manejan los escenarios avanzados de sustitución de colores?
Cadena de sustituciones múltiples para escenarios complejos:
/* :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-multiple-replacements.cs */// Replace multiple colors in sequenceusing var imageInput = new OcrImageInput("multi-color-document.jpg");// Replace red text with blackimageInput.ReplaceColor(IronSoftware.Drawing.Color.Red, IronSoftware.Drawing.Color.Black, 70);// Replace blue headers with dark grayimageInput.ReplaceColor(IronSoftware.Drawing.Color.Blue, IronSoftware.Drawing.Color.DarkGray, 60);// Replace light yellow background with whiteimageInput.ReplaceColor(new IronSoftware.Drawing.Color("#FFFACD"), IronSoftware.Drawing.Color.White, 40);// Perform OCR on the cleaned imagevar result = ocrTesseract.Read(imageInput);
/* :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-multiple-replacements.cs */
// Replace multiple colors in sequence
using var imageInput = new OcrImageInput("multi-color-document.jpg");
// Replace red text with black
imageInput.ReplaceColor(IronSoftware.Drawing.Color.Red, IronSoftware.Drawing.Color.Black, 70);
// Replace blue headers with dark gray
imageInput.ReplaceColor(IronSoftware.Drawing.Color.Blue, IronSoftware.Drawing.Color.DarkGray, 60);
// Replace light yellow background with white
imageInput.ReplaceColor(new IronSoftware.Drawing.Color("#FFFACD"), IronSoftware.Drawing.Color.White, 40);
// Perform OCR on the cleaned image
var result = ocrTesseract.Read(imageInput);
ImportsIronSoftware.Drawing' Replace multiple colors in sequenceUsing imageInput As New OcrImageInput("multi-color-document.jpg") ' Replace red text with black imageInput.ReplaceColor(Color.Red, Color.Black, 70) ' Replace blue headers with dark gray imageInput.ReplaceColor(Color.Blue, Color.DarkGray, 60) ' Replace light yellow background with white imageInput.ReplaceColor(New Color("#FFFACD"), Color.White, 40) ' Perform OCR on the cleaned image Dim result = ocrTesseract.Read(imageInput)EndUsing
Imports IronSoftware.Drawing
' Replace multiple colors in sequence
Using imageInput As New OcrImageInput("multi-color-document.jpg")
' Replace red text with black
imageInput.ReplaceColor(Color.Red, Color.Black, 70)
' Replace blue headers with dark gray
imageInput.ReplaceColor(Color.Blue, Color.DarkGray, 60)
' Replace light yellow background with white
imageInput.ReplaceColor(New Color("#FFFACD"), Color.White, 40)
' Perform OCR on the cleaned image
Dim result = ocrTesseract.Read(imageInput)
End Using
Para sustituciones de color complejas, consulte Filtros de corrección de imágenes para conocer técnicas de preprocesamiento adicionales.
¿Cuáles son los resultados visuales de la sustitución de colores?
Antes
Después
¿Cómo puedo leer solo determinados colores de texto?
Lea colores de texto específicos usando el método SelectTextColor. Especifique el color de destino y la tolerancia (0-255). La tolerancia representa las diferencias admisibles entre el píxel y el color seleccionado para los valores R, G y B.
¿Cómo afecta la tolerancia de color a los resultados?
using IronOcr;using System;// Instantiate IronTesseractIronTesseract ocrTesseract = new IronTesseract();// Add imageusing var imageInput = new OcrImageInput("sample.jpg");// Text color to focus onIronSoftware.Drawing.Color focusColor = new IronSoftware.Drawing.Color("#DB645C");// Specify which text color to readimageInput.SelectTextColor(focusColor, 60);// Perform OCROcrResult ocrResult = ocrTesseract.Read(imageInput);// Output result to consoleConsole.WriteLine(ocrResult.Text);
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);
ImportsIronOcrImportsSystem' Instantiate IronTesseractPrivate ocrTesseract As New IronTesseract()' Add imagePrivate imageInput = New OcrImageInput("sample.jpg")' Text color to focus onPrivate focusColor As New IronSoftware.Drawing.Color("#DB645C")' Specify which text color to readimageInput.SelectTextColor(focusColor, 60)' Perform OCRDim ocrResult AsOcrResult = ocrTesseract.Read(imageInput)' Output result to consoleConsole.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)
Utilice la lectura selectiva de colores para formularios con secciones codificadas por colores, extraer texto resaltado o leer mensajes de advertencia específicos. Para la extracción de datos estructurados, véase OcrResult Class para el procesamiento avanzado.
¿Qué resultados puedo esperar de la selección de colores?
El resultado del OCR solo lee texto de color naranja:
¿Cómo puedo guardar archivos PDF modificados con filtros aplicados?
IronOCR guarda PDF modificados con o sin filtros. El segundo parámetro del método SaveAsSearchablePdf especifica si se debe guardar con filtros aplicados.
¿Cuál es la implementación de los PDF con función de búsqueda?
using IronOcr;// Create OCR engine: filters are applied at the OcrInput level, so no configuration changes are needed herevar ocr = new IronTesseract();var ocrInput = new OcrInput();// Load the scanned PDF as the OCR sourceocrInput.LoadPdf("invoice.pdf");// Convert to grayscale: removes color noise that can reduce OCR accuracy on color-printed documentsocrInput.ToGrayScale();// Run OCR on the preprocessed inputOcrResult result = ocr.Read(ocrInput);// Write the searchable PDF; true = embed the grayscale-filtered image rather than the original color scanresult.SaveAsSearchablePdf("outputGrayscale.pdf", true);
using IronOcr;
// Create OCR engine: filters are applied at the OcrInput level, so no configuration changes are needed here
var ocr = new IronTesseract();
var ocrInput = new OcrInput();
// Load the scanned PDF as the OCR source
ocrInput.LoadPdf("invoice.pdf");
// Convert to grayscale: removes color noise that can reduce OCR accuracy on color-printed documents
ocrInput.ToGrayScale();
// Run OCR on the preprocessed input
OcrResult result = ocr.Read(ocrInput);
// Write the searchable PDF; true = embed the grayscale-filtered image rather than the original color scan
result.SaveAsSearchablePdf("outputGrayscale.pdf", true);
ImportsIronOcr' Create OCR engine: filters are applied at the OcrInput level, so no configuration changes are needed hereDim ocr As New IronTesseract()Dim ocrInput As New OcrInput()' Load the scanned PDF as the OCR sourceocrInput.LoadPdf("invoice.pdf")' Convert to grayscale: removes color noise that can reduce OCR accuracy on color-printed documentsocrInput.ToGrayScale()' Run OCR on the preprocessed inputDim result AsOcrResult = ocr.Read(ocrInput)' Write the searchable PDF; True = embed the grayscale-filtered image rather than the original color scanresult.SaveAsSearchablePdf("outputGrayscale.pdf", True)
Imports IronOcr
' Create OCR engine: filters are applied at the OcrInput level, so no configuration changes are needed here
Dim ocr As New IronTesseract()
Dim ocrInput As New OcrInput()
' Load the scanned PDF as the OCR source
ocrInput.LoadPdf("invoice.pdf")
' Convert to grayscale: removes color noise that can reduce OCR accuracy on color-printed documents
ocrInput.ToGrayScale()
' Run OCR on the preprocessed input
Dim result As OcrResult = ocr.Read(ocrInput)
' Write the searchable PDF; True = embed the grayscale-filtered image rather than the original color scan
result.SaveAsSearchablePdf("outputGrayscale.pdf", True)
¿Cuándo debo aplicar filtros al PDF guardado?
Aplique filtros para crear documentos más limpios y legibles. Esto ayuda a archivar o compartir documentos entre distintos dispositivos. Para obtener más información, consulte Create Searchable PDFs by OCR.
Para documentos complejos con tablas, explore Leer tabla en documento para una extracción especializada. Para el procesamiento de grandes volúmenes, consulte Multithreaded Tesseract OCR para optimizar la aplicación del filtro en varios documentos.
Preguntas Frecuentes
¿Cómo puedo corregir los colores deficientes de las imágenes que afectan a la precisión del OCR?
IronOCR ofrece varios métodos de corrección del color, como la binarización, la conversión a escala de grises, la inversión y la sustitución del color. Estos filtros ayudan a mejorar la legibilidad del texto al mejorar el contraste entre el texto y el fondo, lo que facilita que el motor de OCR extraiga con precisión el texto de imágenes con mala calidad de color.
¿Qué es la binarización y cuándo debo utilizarla para el OCR?
La binarización convierte imágenes a formato de dos colores (normalmente blanco y negro) utilizando el método Binarize de IronOCR. Es particularmente eficaz para documentos escaneados con iluminación irregular o ruido de fondo, ya que crea una clara distinción entre el texto y el fondo mediante el análisis de la imagen y la determinación de umbrales óptimos para la separación.
¿Cómo extraigo de una imagen sólo el texto de un color específico?
El método SelectTextColor de IronOCR le permite centrar el OCR en colores de texto específicos sin una manipulación compleja de la imagen. Simplemente especifique el color de destino y el nivel de tolerancia - por ejemplo, SelectTextColor(new IronSoftware.Drawing.Color("#DB645C"), 60) - para extraer sólo texto en ese rango de color.
¿Cuándo debo convertir imágenes a escala de grises en lugar de utilizar la binarización?
Utilice el método ToGrayScale de IronOCR cuando trabaje con fondos de color o marcas de agua que interfieran con el reconocimiento de texto. A diferencia de la binarización, la escala de grises conserva los detalles en imágenes con variaciones sutiles, por lo que es ideal cuando se necesita mantener la calidad de la imagen al tiempo que reduce el desorden visual.
¿Puedo exportar imágenes corregidas para ver los resultados de los filtros de color?
Sí, IronOCR proporciona el método SaveAsImages para exportar imágenes modificadas después de aplicar correcciones de color. Esto le permite comparar los resultados antes y después, ayudándole a determinar qué métodos de corrección de color funcionan mejor para sus imágenes específicas.
¿Cómo puedo determinar cuál es el mejor filtro de corrección del color para mis imágenes?
IronOCR incluye una herramienta de asistente de filtros que ayuda a determinar la combinación de filtros óptima para sus imágenes. Para el procesamiento por lotes, puede combinar varios filtros como la binarización con otras técnicas de preprocesamiento para lograr los mejores resultados de OCR para su tipo de documento.
What outputs are expected from selective color reading with OCR?
The OCR result from selective color reading focuses only on specified colors, such as extracting highlighted texts or specific warning messages, enabling precise data extraction from color-coded documents.
How can I create searchable PDFs with IronOCR?
IronOCR allows you to save modified PDFs using the SaveAsSearchablePdf method. Filters like grayscale can be applied to improve text readability and noise reduction in the resulting documents.
What preprocessing steps can enhance OCR accuracy for low-quality scans?
For low-quality scans, preprocessing steps like binarization, grayscale conversion, and color inversion can significantly improve text readability and OCR accuracy by reducing noise and enhancing contrast.
How can IronOCR help with structured data extraction?
IronOCR provides advanced processing capabilities like the OcrResult Class, which supports structured data extraction from images, making it ideal for forms with color-coded sections and highlighted text.
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 estructurados y visualmente atractivos.