Cómo corregir imágenes con filtros de lectura

por Chaknith Bin

Los filtros de corrección de imágenes son técnicas de tratamiento digital de imágenes que se utilizan para mejorar la calidad y las características de una imagen, en particular con el fin de mejorar el reconocimiento y la extracción de texto. Los filtros de corrección de imagen disponibles en IronOcr son nitidez, mejora de la resolución, eliminación de ruido, dilatación y erosión.

Estos filtros de corrección de imágenes desempeñan un papel fundamental en el preprocesamiento de imágenes antes del OCR, ya que ayudan a optimizar la imagen para una extracción de texto precisa mejorando la calidad y la visibilidad del texto y reduciendo el ruido o los artefactos no deseados.


Biblioteca NuGet C# para OCR

Instalar con NuGet

Install-Package IronOcr
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

Ejemplo de filtro de enfoque

Este filtro aumenta el contraste a lo largo de los bordes de la imagen, dándoles un aspecto más definido. Mejora la claridad del texto y los detalles, lo que facilita al software OCR el reconocimiento de caracteres.

Para aplicar el filtro de nitidez, basta con invocar el método Sharpen del objeto OcrImageInput.

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

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

//  Añadir imagen
using var imageInput = new OcrImageInput("sample.jpg");
//  Aplicar filtro de nitidez
imageInput.Sharpen();

//  Exportar imagen filtrada
imageInput.SaveAsImages("sharpen");
Imports IronOcr

'  Instanciar IronTesseract
Private ocrTesseract As New IronTesseract()

'  Añadir imagen
Private imageInput = New OcrImageInput("sample.jpg")
'  Aplicar filtro de nitidez
imageInput.Sharpen()

'  Exportar imagen filtrada
imageInput.SaveAsImages("sharpen")
VB   C#

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

Imagen de muestra
Filtro de nitidez aplicado

Ejemplo de filtro de mejora de la resolución

Este filtro está diseñado para aumentar la densidad de píxeles de una imagen, mejorando eficazmente su nitidez y claridad. Puede ser especialmente útil para mejorar la legibilidad del texto en imágenes de baja resolución.

Del mismo modo, puede invocar el método EnhanceResolution para aplicar el filtro de resolución mejorada. Este método también acepta el objetivo deseado, con 225 PPP como valor por defecto.

:path=/static-assets/ocr/content-code-examples/how-to/image-quality-correction-enhance-resolution-filter.cs
//  Aplicar filtro de mejora de resolución
imageInput.EnhanceResolution();
'  Aplicar filtro de mejora de resolución
imageInput.EnhanceResolution()
VB   C#
Imagen de muestra
Filtro de mejora de la resolución aplicado

Ejemplo de filtro de eliminación de ruido

Los filtros de eliminación de ruido reducen el nivel de ruido o artefactos no deseados en una imagen. La reducción del ruido es crucial para el OCR, ya que ayuda a aislar el texto de las interferencias del fondo, lo que permite un reconocimiento más limpio y preciso.

Para aplicar el filtro de eliminación de ruido, utilice el método DeNoise. La morfología por defecto es 2x2, y pasando 'true' al método se habilitará una morfología 3x3. Si elige la opción 3x3, se aplicará un algoritmo de eliminación de ruido más potente.

:path=/static-assets/ocr/content-code-examples/how-to/image-quality-correction-denoise-filter.cs
//  Aplicar filtro de eliminación de ruido
imageInput.DeNoise();
'  Aplicar filtro de eliminación de ruido
imageInput.DeNoise()
VB   C#
Imagen de muestra
Filtro de ruido aplicado

Ejemplo de filtro de dilatación

La dilatación es un filtro que expande las regiones más brillantes (primer plano) en una imagen. Ayuda a engrosar y realzar el texto, haciéndolo más prominente y más fácil de interpretar para el software OCR.

Para aplicar el filtro de dilatación, utilice el método Dilate. Similar al método DeNoise, la morfología por defecto es 2x2, y pasando true se activará la opción 3x3.

:path=/static-assets/ocr/content-code-examples/how-to/image-quality-correction-dilate-filter.cs
//  Aplicar filtro de dilatación
imageInput.Dilate();
'  Aplicar filtro de dilatación
imageInput.Dilate()
VB   C#
Imagen de muestra
Filtro Dilter aplicado

Ejemplo de filtro Erode

La erosión, por su parte, reduce el tamaño de las regiones brillantes de una imagen. Esto puede ser útil para refinar caracteres y líneas, sobre todo cuando son gruesos o están ligeramente distorsionados.

Utilice el método Erode para aplicar el filtro de erosión. Similar a los dos métodos anteriores, 2x2 es la morfología y pasar true habilitará la opción 3x3.

:path=/static-assets/ocr/content-code-examples/how-to/image-quality-correction-erode-filter.cs
//  Aplicar filtro de erosión
imageInput.Erode();
'  Aplicar filtro de erosión
imageInput.Erode()
VB   C#
Imagen de muestra
Filtro Erode aplicado

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.