Por Victor Powell

Un kernel de imagen es una pequeña matriz que se utiliza para aplicar efectos como los que se pueden encontrar en Photoshop o Gimp, como desenfoque, nitidez, contorno o relieve. También se utilizan en el aprendizaje automático para la «extracción de características», una técnica para determinar las partes más importantes de una imagen. En este contexto, el proceso se denomina más generalmente «convolución» (véase: redes neuronales convolucionales.)

Para ver cómo funcionan, empecemos por inspeccionar una imagen en blanco y negro. La matriz de la izquierda contiene números, entre 0 y 255, que corresponden cada uno al brillo de un píxel en la imagen de una cara. La imagen grande y granulada se ha ampliado para que sea más fácil de ver; la última imagen es el tamaño «real».

Andemos aplicando el siguiente kernel 3×3 {{selectedKernel}} a la imagen de una cara de arriba.

A continuación, para cada bloque 3×3 de píxeles en la imagen de la izquierda, multiplicamos cada píxel por la entrada correspondiente del kernel y luego tomamos la suma. Esa suma se convierte en un nuevo píxel en la imagen de la derecha. Pase el ratón por encima de un píxel en cualquiera de las dos imágenes para ver cómo se calcula su valor.

Una sutileza de este proceso es lo que hay que hacer en los bordes de la imagen. Por ejemplo, la esquina superior izquierda de la imagen de entrada sólo tiene tres vecinos. Una forma de arreglar esto es extender los valores de los bordes en uno en la imagen original, manteniendo nuestra nueva imagen del mismo tamaño. En esta demostración, hemos ignorado esos valores haciéndolos negros.

Aquí hay un campo de juego donde puedes seleccionar diferentes matrices de núcleo y ver cómo afectan a la imagen original o construir tu propio núcleo. También puedes subir tu propia imagen o utilizar vídeo en directo si tu navegador lo soporta.

El núcleo de nitidez enfatiza las diferencias en los valores de los píxeles adyacentes. Esto hace que la imagen parezca más vívida.

El kernel de desenfoque desacentúa las diferencias en los valores de los píxeles adyacentes.

El kernel de relieve (similar al kernel de sobel y que a veces se denomina igual) da la ilusión de profundidad al enfatizar las diferencias de los píxeles en una dirección determinada. En este caso, en una dirección a lo largo de una línea desde la parte superior izquierda a la inferior derecha.

El kernel de identidad deja la imagen sin cambios. Qué aburrido!

El kernel personalizado es lo que usted haga.

Los kernels sobrantes se usan para mostrar sólo las diferencias en los valores de los píxeles adyacentes en una dirección particular.

Un kernel de contorno (también llamado kernel de «borde») se usa para resaltar grandes diferencias en los valores de los píxeles. Un píxel junto a los píxeles vecinos con casi la misma intensidad aparecerá en negro en la nueva imagen, mientras que uno junto a los píxeles vecinos que difieren fuertemente aparecerá en blanco.

Para más, eche un vistazo a la excelente documentación de Gimp sobre el uso de los kernel de imagen. También puede aplicar sus propios filtros personalizados en Photoshop yendo a Filtro -> Otros -> Personalizado…

admin

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

lg