Instituto Polit�cnico Nacional
Instituto Politécnico Nacional
"La Técnica al Servicio de la Patria"

Boletín No. 100
1o. de enero de 2024




EXPANSIÓN DE UNA IMAGEN EMPLEANDO LÓGICA DIFUSA

 

Álvaro Anzueto Ríos, Dr.,      Alma Aidé Sánchez Ramírez, M. en T. A.

Profesores
Instituto Politécnico Nacional
Unidad Interdisciplinaria en Ingeniería y Tecnologías Avanzadas
CDMX, México

Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. ,      Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

 

Resumen

El procesamiento de imágenes es una disciplina clave en la manipulación, análisis y comprensión de datos visuales. Implica una variedad de técnicas para mejorar la calidad de las imágenes, procesar la información visual y extraer características relevantes. Diversas técnicas se aplican en el procesamiento de imágenes, incluyendo la restauración, el filtrado, la segmentación, la clasificación y la expansión. En este reporte se aborda el proceso de expansión de una imagen, combinando la técnica de interpolación bilineal con la lógica difusa. Los problemas que suelen presentarse al aplicar la interpolación bilineal, es la generación de imágenes con un suavizado o artefactos no deseados en los bordes de alto contraste; para minimizar estos inconvenientes se plantea el uso de lógica difusa, por lo tanto, se presenta como una alternativa al cálculo de los valores numéricos de los píxeles desconocidos cuando una imagen es ampliada o expandida; se procesan lo altos contrates bajo una visión de difusividad y transiciones suaves. En la sección de resultados se presentan un par de imágenes que avalan el desempeño de la propuesta.

 

Introducción

El procesamiento de imágenes es una disciplina clave en el procesamiento, análisis y comprensión de datos visuales. Implica una variedad de técnicas para mejorar la calidad de las imágenes, procesar la información visual y extraer características relevantes. Diversas técnicas se aplican en el procesamiento de imágenes, incluyendo la restauración, el filtrado, la segmentación, la clasificación y expansión, etc. [1-2].

La expansión de imágenes, como se muestra en la Figura 1, es un proceso central en el procesamiento de imágenes, donde la resolución de una imagen se incrementa generando una versión más grande basada en la imagen original. Esta técnica se apoya en métodos de interpolación para generar nuevos píxeles que se colocan entre los píxeles existentes, por lo que el proceso también suele llamarse “interpolación de imágenes”. Entre las técnicas de interpolación, la interpolación bilineal es comúnmente utilizada [1, 3]. La expansión de imágenes es crucial para mejorar la resolución y la calidad visual de imágenes pequeñas.

La interpolación bilineal es una técnica popular que amplía una imagen generando nuevos píxeles entre los píxeles originales mediante promedios ponderados. Sin embargo, la interpolación bilineal puede resultar en suavizados o artefactos no deseados en los bordes de alto contraste.

Para mejorar este proceso, se han propuesto métodos más avanzados, como la interpolación bicúbica, que utiliza una función de interpolación más compleja, teniendo en cuenta píxeles vecinos y reduciendo los artefactos presentes en la interpolación bilineal. Otros enfoques, como la interpolación por spline, buscan ajustar funciones de interpolación suaves a los píxeles existentes para mejorar la calidad de la imagen durante la expansión.

La lógica difusa [4], es una técnica matemática que trata con la incertidumbre y la imprecisión en los datos. Se aplica en el procesamiento de imágenes para mejorar los valores de los píxeles mediante reglas heurísticas basadas en la información del píxel actual y sus vecinos. Al emplear la lógica difusa, se adaptan los valores de los píxeles según reglas flexibles (como la "humana") y no lineales, permitiendo una interpretación menos rígida y con una mayor adaptabilidad de los datos visuales.

En la expansión de imágenes (ver Figura 1), la lógica difusa se ha aplicado para ajustar los valores de los nuevos píxeles generados por la interpolación. Esto permite adaptar de manera más efectiva estos valores a las características y estructuras de la imagen original, mejorando la calidad y manteniendo la fidelidad visual durante el proceso de expansión. Para nuestro caso, se propone el uso de la “Lógica Difusa” para abordar el problema de altos contrastes como un proceso de transición suave; logrando con esto mantener una transición coherente y flexible entre los píxeles originales y el cálculo de los valores en los píxeles que son agregados en el proceso de expansión [5].

 

         Figura 1. . Expansión de una imagen.
         

 

Desarrollo

Como hemos mencionado previamente la expansión de imágenes, un proceso crucial que aumenta la resolución de una imagen al insertar nuevos píxeles entre los píxeles existentes, lo que conduce a una representación visual de mayor calidad y detalle.

La interpolación bilineal es empleada para determinar los valores de los nuevos píxeles entre los píxeles originales, se basa en calcular los valores mediante un promedio ponderado de los vecinos más cercanos. La fórmula matemática para la interpolación bilineal en la expansión de imágenes se define por la ecuación (1).

 

 

De donde:

  • I(x,y) es el valor del píxel en las coordenadas (x,y)
  • son los valores de los píxeles vecinos más cercanos.
  • son las diferencias normalizadas entre las coordenadas (x,y) y las coordenadas de los píxeles vecinos.

En el contexto de la expansión de imágenes, la lógica difusa se aplica para ajustar los valores de los nuevos píxeles generados por la interpolación. Esto permite una adaptación más efectiva de los valores, considerando las características y estructuras de la imagen original.

Una regla común de lógica difusa aplicada en el procesamiento de imágenes es la que se expresa en la ecuación (2).

 

 

Donde:

  • imagen(i,j) es el valor del píxel en la posición(i,j) en la imagen original.
  • max⁡(i-1,0) y max ⁡(j-1,0) se utilizan para asegurarse de no salirse de los limites de la imagen.

La lógica difusa aplicada después de la interpolación permite ajustar los valores de los píxeles generados, lo que contribuye significativamente a mejorar la calidad visual de la imagen escalada.

Ahora es necesario implementar cada una de estas partes; se presenta una explicación ordenada de los pasos a seguir en la implementación de la expansión de una imagen en escala de grises. El código utiliza una técnica de interpolación basada en lógica difusa para escalar una imagen a una ampliación de 2x y 3x, tomando en cuenta la secuencia establecida:

  1. Interpolación Bilineal Fuzzy:
    • Para cada píxel en la imagen ampliada, se buscan los píxeles vecinos más cercanos en la imagen original.
    • Se calculan los coeficientes de ponderación difusa, basados en la distancia del píxel actual a los píxeles vecinos.
    • Se utilizan estos coeficientes para realizar la interpolación bilineal difusa entre los píxeles vecinos para obtener un valor interpolado.
  2. Ajuste Difuso:
    • Para implementar la lógica difusa, se realiza un proceso de inferencia tipo min-max.
    • El valor ajustado se calcula tomando un porcentaje del valor interpolado original y un porcentaje de un valor aleatorio centrado en el valor interpolado original. Esto introduce un grado de incertidumbre o difusión en los valores de píxeles, ver ecuación (2).
  3. Escalado y Generación de la Imagen:
    • Se utilizan estos métodos para escalar la imagen a una ampliación de 2x y 3x, iterando sobre cada píxel de la imagen ampliada y realizando los cálculos mencionados anteriormente.

En resumen, la interpolación bilineal se utiliza para calcular los valores de los píxeles en la imagen ampliada, mientras que el ajuste difuso agrega cierto nivel de incertidumbre o difusión a estos valores para simular una expansión suave en el proceso de escalado de la imagen.

Resultados

Como parte de las pruebas realizadas se presentan los resultados de aplicar el algoritmo desarrollado a dos imágenes. La primera de ellas es nombrada “cameraman”[6], es una imagen en escala de grises que representa a un hombre con una cámara fotográfica, esta imagen es utilizada con frecuencia en la investigación y la experimentación en procesamiento de imágenes, contiene una cantidad moderada de detalles y texturas, lo que la hace adecuada para probar el método de expansión. En la figura 1(a), de izquierda a derecha, se muestran la imagen original, luego la expansión en 2X y finalmente la expansión 3X , para el caso de visualización y debido al buen desempeño del algoritmo se aprecian idénticas y sin perder definición. En la figura 1(b), de izquierda a derecha, se muestran las ampliaciones de las secciones en rojo, es posible notar como se mantiene la resolución de la imagen aun siendo amplificada en un factor de 2X y 3X .

 

        
Figura 1. Expansión de una imagen. (a) De izquierda a derecha Imagen origina – Imagen en expansión 2x – Imagen en expansión 3x. (b) De izquierda a derecha sección en rojo de Imagen original – Imagen en expansión 2x – Imagen en expansión 3x.

 

La segunda imagen es nombrada “page”, que hace referencia a una imagen en escala de grises que contiene un segmento de texto, por lo que presenta un conjunto diverso de formas, texturas y detalles que permiten realizar pruebas de expansión, es importante notar de ella que, en el proceso de expansión 2X y 3X, las letras conservan su definición y en general los detalles de la imagen original. Cabe resaltar el resultado de la expansión en 3X; en ella se tiene una atenuación, en relación con la misma sección de la imagen original (Figura 2b), que se atribuye al proceso de lógica difusa, la cual logra difuminar el ruido que presenta en la imagen original.

 

    
        

a)

         

 

 

    
        

b)

Figura 2. Expansión de una imagen. (a) De izquierda a derecha Imagen original – Imagen en expansión 2x – Imagen en expansión 3x. (b) De izquierda a derecha sección en rojo de Imagen original – Imagen en expansión 2x – Imagen en expansión 3x.          

 

A manera de análisis final, podemos decir que la idea básica es calcular los valores de los nuevos píxeles a través de una combinación ponderada de los valores de los píxeles vecinos, tomando en cuenta tanto las distancias horizontales como verticales. Luego, se puede aplicar un ajuste difuso para simular la incertidumbre, minimizarla y mejorar la calidad de la imagen resultante.

Conclusiones

La interpolación bilineal, que se presenta en el trabajo, se utiliza para calcular los valores de los píxeles en la imagen ampliada, mientras que el ajuste difuso agrega cierto nivel de incertidumbre o difusión a estos valores. La lógica difusa permite manejar la incertidumbre y agregar variabilidad a los valores calculados, lo que puede ayudar a mejorar la calidad de la imagen ampliada. Sin embargo, es necesario realizar mayores pruebas para determinar las limitaciones de esta ampliación de imágenes.

Nota

Los autores están en la mejor disposición de compartir el programa computacional desarrollado en esta propuesta de ampliación de imágenes; tan solo envíe un email a la dirección de correo de cualquier autor solicitándolo.

Referencias

  1. González, R. C., Woods, R. E., & Eddins, S. L. (2009). Título del artículoDigital Image Processing Using MATLAB. Gatesmark Publishing.

  2. Pratt, W. K. (2007). Digital Image Processing.John Wiley & Sons.

  3. Szeliski, R. (2010). Computer Vision: Algorithms and Applications.Springer Science & Business Media.

  4. Ross, Timothy J. (2009). Fuzzy logic with engineering applications. John Wiley & Sons

  5. Bezdek, J. C. (2013). Pattern Recognition with Fuzzy Objective Function Algorithms. Springer Science & Business Media.

  6. Scikit-Image, (s.f.). User Guide, available on- line: https://scikit-image.org/docs/stable/api/skimage.data.html (accessed on 01 December 2023).