Desenfocar, enfocar, perfilar o crear relieve son convoluciones. El menú «Filtro > Otros > A medida» de Photoshop es literalmente un editor de kernel como este.
💡 El «desenfoque gaussiano» que ves en todas partes es esta operación con un kernel en forma de campana.
Efectos como el bloom, el desenfoque de movimiento o el contorno de objetos (outline) se implementan en shaders aplicando kernels al fotograma renderizado.
💡 En shaders, la convolución se hace muestreando texeles vecinos: la misma ventana 3×3 de aquí, pero en la GPU.
Detectar bordes y esquinas es el primer paso de muchos algoritmos: Sobel y el Laplaciano preparan la imagen para detectar contornos, líneas o seguir objetos.
💡 Suavizar con un gaussiano antes de buscar bordes reduce el ruido y mejora la detección (base del detector de Canny).
Cada capa convolucional de una CNN aplica muchos kernels a la imagen. La diferencia es que sus pesos no se escriben a mano: se aprenden durante el entrenamiento.
💡 Las primeras capas de una CNN suelen aprender detectores de bordes muy parecidos a Sobel; las profundas reconocen objetos.
¿Qué diferencia hay entre convolución y correlación cruzada?
En la convolución matemática estricta el kernel se voltea (se gira 180°) antes de aplicarlo; en la correlación cruzada no. En procesamiento de imágenes y en las CNN casi siempre se usa la correlación cruzada y se la llama «convolución» por costumbre. Para kernels simétricos, como el desenfoque, el resultado es idéntico.
💡 Este visualizador usa la correlación cruzada, la convención habitual en visión por computador y aprendizaje profundo.
¿Por qué algunos filtros oscurecen o aclaran toda la imagen?
El brillo medio cambia según la suma de los pesos. Si suman más de 1 (sin normalizar), la imagen se aclara; si suman menos, se oscurece. Por eso se divide por la suma de pesos: para conservar el brillo. En los filtros de bordes la suma es 0, así que las zonas planas quedan negras y solo brillan los cambios.
💡 Activa el «divisor automático» y compara: sin normalizar, un box blur de pesos 1 dispara el brillo.
¿Para qué sirve el desplazamiento (offset)?
Los filtros de bordes y de relieve producen valores positivos y negativos. Como un píxel no puede ser negativo, los valores por debajo de 0 se recortarían a negro y se perdería información. Sumar 128 desplaza el cero a gris medio, de modo que se ven los cambios en ambos sentidos.
💡 Por eso un Sobel con offset se ve gris con bordes claros y oscuros, en lugar de casi todo negro.
¿Qué pasa en los bordes de la imagen?
En el primer y último píxel el kernel 3×3 se sale de la imagen. Hay que decidir qué valor tienen esos vecinos inexistentes: rellenar con ceros, repetir el píxel del borde (extensión) o reflejar. Esta herramienta repite el píxel del borde, lo que evita marcos negros artificiales.
💡 En las CNN, rellenar con ceros (zero padding) es lo más común porque permite controlar el tamaño de salida.
¿Por qué la convolución es la base de las CNN?
Una capa convolucional no es más que aplicar kernels a la imagen, igual que aquí. La clave es que un mismo kernel se reutiliza en toda la imagen (comparte pesos), así que detecta el mismo patrón aparezca donde aparezca. Esa eficiencia es lo que hizo posible la visión por computador moderna.
💡 Entender un kernel 3×3 a mano es entender qué hace cada filtro de una red neuronal por dentro.
¿Cómo afecta el tamaño del kernel?
Aquí trabajamos con 3×3, el tamaño más común. Kernels mayores (5×5, 7×7) abarcan más vecindario: desenfocan más o detectan estructuras más grandes, pero cuestan más cálculo. Muchos efectos potentes se logran encadenando varios kernels pequeños en lugar de uno grande.
💡 Dos desenfoques 3×3 seguidos equivalen aproximadamente a uno 5×5, y son más baratos de calcular.
✅Empieza por la identidadCon un 1 en el centro y ceros alrededor la imagen no cambia. Mueve un peso y observa el efecto para entender cada posición.
✅Normaliza para conservar el brilloSi los pesos suman más de 1, divide entre su suma. Activa el divisor automático y verás cómo se mantiene la luminosidad.
✅Usa offset para los bordesEn filtros con valores negativos (Sobel, relieve) suma 128 para no perder los valores por debajo de cero al recortar.
✅Compara las dos escenasEl tablero y las ondas tienen muchos bordes rectos y curvos: ideal para ver qué hacen Sobel y el Laplaciano.
✅Exagera el sharpen con cuidadoSubir el centro y bajar los vecinos enfoca más, pero en exceso aparecen halos y se amplifica el ruido.
✅Piensa en CNNCada kernel que diseñas a mano es un «filtro» como los que una red neuronal aprende sola al entrenarse.