El desenfoque gaussiano en imágenes digitales es una forma de desenfocar una imagen usando la función gaussiana , llamada así por el matemático alemán Carl Friedrich Gauss .
Este efecto se usa mucho en los editores de gráficos para reducir el ruido y los detalles de la imagen. El efecto visual de este método de desenfoque es similar al efecto de ver una imagen a través de una pantalla translúcida y es claramente diferente del efecto bokeh creado por una lente desenfocada o la sombra de un objeto con iluminación normal.
El desenfoque gaussiano también se usa como un paso de preprocesamiento en los algoritmos de visión por computadora para mejorar la estructura de la imagen en varias escalas.
Aplicar un desenfoque gaussiano a una imagen es matemáticamente similar a convolucionar una imagen usando la función gaussiana . También se conoce como la transformada 2D de Weierstrass. La convolución cíclica (es decir, el desenfoque circular alrededor del marco), por el contrario, reproduce el efecto bokeh con mayor precisión .
Dado que la transformada de Fourier de una función gaussiana es en sí misma una función gaussiana, la aplicación del desenfoque gaussiano da como resultado una reducción de los componentes de alta frecuencia de la imagen. Por lo tanto, el desenfoque gaussiano es un filtro de paso bajo .
En este método de desenfoque, la función gaussiana (que también se usa para describir la distribución normal en la teoría de la probabilidad ) se usa para calcular la transformación que se aplicará a cada píxel de la imagen. Fórmula de la función gaussiana en una dimensión:
.En dos dimensiones, este es el producto de dos funciones gaussianas, una para cada dimensión:
[2] [3] .donde x , y son las coordenadas del punto y σ es la desviación estándar de la distribución normal. Cuando se aplica en dos dimensiones, esta fórmula produce una superficie cuyos contornos son círculos concéntricos normalmente distribuidos alrededor de un punto central.
Los valores de esta distribución se utilizan para construir una matriz de convolución que se aplica a la imagen original. El nuevo valor de cada píxel se establece en el promedio ponderado de la vecindad de ese píxel. El valor del píxel original recibe el mayor peso (que tiene el valor gaussiano más alto), y los píxeles vecinos reciben pesos más bajos a medida que aumenta su distancia desde el píxel original. Esto da como resultado un desenfoque que conserva los bordes y bordes mejor que otros filtros de desenfoque más uniformes.
En teoría, la función gaussiana en cada punto de la imagen será distinta de cero, lo que significa que toda la imagen está involucrada en el cálculo del valor de cada píxel. En la práctica, al calcular la aproximación discreta de la función gaussiana, los píxeles a una distancia superior a 3 σ tienen un efecto bastante pequeño sobre ella, por lo que se pueden considerar prácticamente nulos. Por lo tanto, los valores de píxeles fuera de este rango pueden ignorarse. Por lo general, un programa de procesamiento de imágenes solo necesita calcular una matriz con dimensiones × (donde está la función de redondeo ) para garantizar un resultado lo suficientemente cercano al resultado obtenido utilizando la distribución gaussiana completa.
Además de la simetría circular, el desenfoque gaussiano se puede aplicar a una imagen 2D como dos cálculos 1D independientes y, por lo tanto, es un filtro separable. Esto significa que el efecto de aplicar una matriz 2D también se puede lograr aplicando una serie de matrices 1D en dirección horizontal y luego repitiendo el proceso en dirección vertical. Desde un punto de vista computacional, esta es una propiedad útil, ya que el cálculo se puede realizar en el tiempo , donde h es la altura y w es el ancho, a diferencia de cuando se usa un kernel inseparable.
La aplicación de desenfoques gaussianos sucesivos a una imagen tiene el mismo efecto que aplicar un desenfoque gaussiano más grande cuyo radio es la raíz cuadrada de la suma de los cuadrados de los radios de desenfoque realmente aplicados. Por ejemplo, aplicar desenfoques gaussianos sucesivos con radios de 6 y 8 da los mismos resultados que aplicar un desenfoque gaussiano con radio 10, ya que . Debido a esta relación, no se puede ahorrar tiempo de procesamiento simulando un desenfoque gaussiano con desenfoques más pequeños sucesivos; el tiempo requerido será al menos el mismo que cuando se realiza un solo desenfoque grande.
El desenfoque gaussiano se usa comúnmente cuando se reduce el tamaño de una imagen. Cuando se reduce la resolución de una imagen antes de volver a muestrear, generalmente se aplica un filtro de paso bajo a la imagen. Esto es necesario para evitar la aparición de información falsa de alta frecuencia en la imagen submuestreada ( aliasing ). El desenfoque gaussiano tiene buenas propiedades, como la ausencia de bordes nítidos y, por lo tanto, la ausencia de artefactos de timbre en la imagen filtrada.
El desenfoque gaussiano es un filtro de paso bajo que atenúa las señales de alta frecuencia [3] .
Su respuesta de frecuencia logarítmica ( escala de dominio de frecuencia logarítmica ) es una parábola .
¿Cuánto suaviza la imagen un filtro gaussiano de desviación estándar? En otras palabras, ¿cuánto reducirá este suavizado la desviación estándar de los valores de píxel en la imagen? Suponga que los valores de píxeles en escala de grises tienen una desviación estándar , por lo que después de aplicar el filtro, la desviación estándar reducida se puede aproximar de la siguiente manera:
.Esta matriz se crea muestreando el núcleo del filtro gaussiano (con σ = 0,84089642) en los puntos medios de cada píxel y luego normalizándolo. El elemento central (4,4) tiene el mayor valor, los elementos restantes disminuyen simétricamente a medida que aumenta la distancia desde el centro.
[ 0.000 00067 0.000 02292 0.00019117 0.000 38771 0.00019117 0.000 02292 0.000 00067 0.000 02292 0.000 78633 0.006 55965 0.013 30373 0.006 55965 0.000 78633 0.000 02292 0.00019117 0.006 55965 0.054 72157 0.110 98164 0.054 72157 0.006 55965 0.00019117 0.000 38771 0.013 30373 0.110 98164 0.22508352 0.110 98164 0.013 30373 0.000 38771 0.00019117 0.006 55965 0.054 72157 0.110 98164 0.054 72157 0.006 55965 0.00019117 0.000 02292 0.000 78633 0.006 55965 0.013 30373 0.006 55965 0.000 78633 0.000 02292 0.000 00067 0.000 02292 0.00019117 0.000 38771 0.00019117 0.000 02292 0.000 00067 ] {\displaystyle {\begin{bmatrix}0{,}00000067&0{,}00002292&{\textbf {0.00019117}}&0{,}00038771&{\textbf {0.00019117}}&0{,}00002292&0{,}00000067 \\0{ ,}00002292&0{,}00078633&0{,}00655965&0{,}01330373&0{,}00655965&0{,}00078633&0{,}00002292\\{\textbf {0,00019117}}&0{,}0065,590 650&0{1,} }11098164&0{,}05472157&0{,}00655965&{\textbf {0.00019117}}\\0{,}00038771&0{,}01330373&0{,}11098164&{\textbf {0.22508352}}&0{,} 11030981 }00038771\\{\textbf {0.00019117}}&0{,}00655965&0{,}05472157&0{,}11098164&0{,}05472157&0{,}00655965&{\textbf {0.070}}91 \\0{,}0000{2}92&0 00078633&0{,}00655965&0{,}01330373&0{,}00655965&0{,}00078633&0{,}00002292\\0{,}00000067&0{,}00002292&0{\textbf {91} }&0{107b1}1 }&0{,}00002292&0{,}00000067\end{bmatriz}}}El elemento 0.22508352 (central) es 1177 veces más grande que 0.00019117, que está justo fuera de 3σ.
El efecto de desenfoque gaussiano generalmente se crea convolucionando una imagen con un kernel FIR utilizando valores de función gaussiana.
En la práctica, es mejor usar la propiedad de separabilidad del desenfoque gaussiano, realizando el proceso en dos pasos. El primer paso utiliza un núcleo unidimensional para desenfocar la imagen solo en dirección horizontal o vertical. En la segunda pasada, se utiliza el mismo núcleo unidimensional para desenfocar en la otra dirección. El efecto neto es el mismo que el de la convolución con un kernel 2D en un solo paso, pero requiere menos cómputo.
La discreción generalmente se logra seleccionando puntos discretos, generalmente en posiciones correspondientes a los puntos centrales de cada píxel. Esto reduce el costo computacional, pero para núcleos de filtro muy pequeños, el muestreo puntual de la función gaussiana con un número muy pequeño de muestras conduce a un gran error.
En estos casos, la precisión se mantiene (con poco costo computacional) al integrar la función Gaussiana sobre el área de cada píxel [4] .
Al convertir valores continuos de la función gaussiana en valores discretos necesarios para el kernel, la suma de los valores diferirá de 1. Esto oscurecerá o aclarará la imagen. Para corregir este efecto, los valores se pueden normalizar dividiendo cada elemento del núcleo por la suma de todos los elementos.
La eficiencia de FIR disminuye para valores altos de σ. Existen alternativas al filtro FIR. Estos incluyen desenfoque de cuadro múltiple muy rápido , detector de borde IIR rápido y preciso de Deriche, "desenfoque de pila" basado en desenfoque de cuadro y más [5] .
El suavizado gaussiano se usa comúnmente para la detección de bordes . La mayoría de los algoritmos de detección de bordes son sensibles al ruido. El filtro bidimensional de Laplace, construido sobre la base de la discretización del operador de Laplace , es muy sensible a los entornos ruidosos.
El uso de un filtro de desenfoque gaussiano antes de la detección de bordes tiene como objetivo reducir el nivel de ruido en la imagen, lo que mejora el resultado del trabajo posterior del algoritmo de detección de bordes. Este enfoque se conoce comúnmente como filtrado Gaussian Laplacian o LoG [6] .
Las cámaras digitales de gama baja , incluidas muchas cámaras de teléfonos móviles , suelen utilizar el desenfoque gaussiano para ocultar el ruido de la imagen causado por velocidades ISO más altas.
El desenfoque gaussiano se aplica automáticamente como parte del procesamiento posterior de la imagen por parte del software de la cámara, lo que genera una pérdida permanente de detalles [7] .