En el procesamiento de imágenes , un desenfoque gaussiano (también conocido como suavizado gaussiano ) es el resultado de desenfocar una imagen mediante una función gaussiana (llamada así en honor al matemático y científico Carl Friedrich Gauss ).
Es un efecto muy utilizado en software de gráficos, normalmente para reducir el ruido de la imagen y los detalles. El efecto visual de esta técnica de desenfoque es un desenfoque suave que se asemeja al que se produce al ver la imagen a través de una pantalla translúcida, muy diferente del efecto bokeh que produce una lente desenfocada o la sombra de un objeto bajo una iluminación normal.
El suavizado gaussiano también se utiliza como una etapa de preprocesamiento en algoritmos de visión por computadora para mejorar las estructuras de imágenes en diferentes escalas (consulte representación del espacio de escala e implementación del espacio de escala) .
Matemáticamente, aplicar un desenfoque gaussiano a una imagen es lo mismo que convolucionar la imagen con una función gaussiana . Esto también se conoce como transformación de Weierstrass bidimensional . Por el contrario, la convolución mediante un círculo (es decir, un desenfoque de caja circular ) reproduciría con mayor precisión el efecto bokeh .
Dado que la transformada de Fourier de una gaussiana es otra gaussiana, la aplicación de un desenfoque gaussiano tiene el efecto de reducir los componentes de alta frecuencia de la imagen; un desenfoque gaussiano es, por tanto, un filtro de paso bajo .
El desenfoque gaussiano es un tipo de filtro de desenfoque de imagen que utiliza una función gaussiana (que también expresa la distribución normal en estadística) para calcular la transformación que se aplicará a cada píxel de la imagen. La fórmula de una función gaussiana en una dimensión es
En dos dimensiones, es el producto de dos funciones gaussianas de este tipo, una en cada dimensión: [1] [2] [3] donde x es la distancia desde el origen en el eje horizontal, y es la distancia desde el origen en el eje vertical y σ es la desviación estándar de la distribución gaussiana. Es importante señalar que el origen en estos ejes está en el centro (0, 0). Cuando se aplica en dos dimensiones, esta fórmula produce una superficie cuyos contornos son círculos concéntricos con una distribución gaussiana desde el punto central.
Los valores de esta distribución se utilizan para construir una matriz de convolución que se aplica a la imagen original. Este proceso de convolución se ilustra visualmente en la figura de la derecha. El nuevo valor de cada píxel se establece en un promedio ponderado de la vecindad de ese píxel. El valor del píxel original recibe el mayor peso (tiene el valor gaussiano más alto) y los píxeles vecinos reciben pesos más pequeños a medida que aumenta su distancia al píxel original. Esto da como resultado un desenfoque que conserva los límites y los bordes mejor que otros filtros de desenfoque más uniformes; consulte también la implementación del espacio de escala .
En teoría, la función gaussiana en cada punto de la imagen no será cero, lo que significa que se debería incluir toda la imagen en los cálculos para cada píxel. En la práctica, al calcular una aproximación discreta de la función gaussiana, los píxeles a una distancia de más de 3 σ tienen una influencia lo suficientemente pequeña como para ser considerados efectivamente cero. Por lo tanto, las contribuciones de los píxeles fuera de ese rango se pueden ignorar. Por lo general, un programa de procesamiento de imágenes solo necesita calcular una matriz con dimensiones × (donde es la función techo ) para garantizar un resultado lo suficientemente cercano al obtenido por toda la distribución gaussiana.
Además de ser circularmente simétrico, el desenfoque gaussiano se puede aplicar a una imagen bidimensional como dos cálculos unidimensionales independientes, por lo que se denomina filtro separable . Es decir, el efecto de aplicar la matriz bidimensional también se puede lograr aplicando una serie de matrices gaussianas unidimensionales en la dirección horizontal y luego repitiendo el proceso en la dirección vertical. En términos computacionales, 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; consulte la notación Big O ), a diferencia de lo que ocurre con un núcleo no separable.
La aplicación de desenfoques gaussianos sucesivos a una imagen tiene el mismo efecto que la aplicación de un único desenfoque gaussiano más grande, cuyo radio es la raíz cuadrada de la suma de los cuadrados de los radios de desenfoque que se aplicaron realmente. Por ejemplo, la aplicación de desenfoques gaussianos sucesivos con radios de 6 y 8 da los mismos resultados que la aplicación de un único desenfoque gaussiano de radio 10, ya que . Debido a esta relación, no se puede ahorrar tiempo de procesamiento simulando un desenfoque gaussiano con desenfoques sucesivos más pequeños: el tiempo necesario será al menos tan grande como el de realizar el único desenfoque grande.
El desenfoque gaussiano se utiliza habitualmente para reducir el tamaño de una imagen. Cuando se reduce el tamaño de una imagen, es habitual aplicar un filtro de paso bajo a la imagen antes de volver a muestrearla. Esto es para garantizar que no aparezca información falsa de alta frecuencia en la imagen reducida ( aliasing ). Los desenfoques gaussianos tienen buenas propiedades, como no tener bordes afilados y, por lo tanto, no introducen anillos en la imagen filtrada.
El desenfoque gaussiano es un filtro de paso bajo que atenúa las señales de alta frecuencia. [3]
Su diagrama de Bode de amplitud (la escala logarítmica en el dominio de la frecuencia ) es una parábola .
¿Cuánto suaviza la imagen un filtro gaussiano con desviación estándar? En otras palabras, ¿cuánto reduce la desviación estándar de los valores de los píxeles de la imagen? Supongamos que los valores de los píxeles en escala de grises tienen una desviación estándar , entonces, después de aplicar el filtro, la desviación estándar reducida se puede aproximar como [ cita requerida ]
Esta matriz de muestra se produce mediante el muestreo del núcleo del filtro gaussiano (con σ = 0,84089642) en los puntos medios de cada píxel y luego se normaliza. El elemento central (en [0, 0]) tiene el valor más grande, que disminuye simétricamente a medida que aumenta la distancia desde el centro. Dado que el origen del núcleo del filtro está en el centro, la matriz comienza en y termina en donde R es igual al radio del núcleo.
El elemento 0,22508352 (el central) es 1177 veces más grande que 0,00019117, que está justo fuera de 3σ.
Un efecto de desenfoque gaussiano generalmente se genera convolucionando una imagen con un núcleo FIR de valores gaussianos; consulte [4] para un tratamiento en profundidad.
En la práctica, lo mejor es aprovechar la propiedad separable del desenfoque gaussiano dividiendo el proceso en dos pasadas. En la primera, se utiliza un núcleo unidimensional para desenfocar la imagen solo en la dirección horizontal o vertical. En la segunda, se utiliza el mismo núcleo unidimensional para desenfocar en la dirección restante. El efecto resultante es el mismo que el de la convolución con un núcleo bidimensional en una sola pasada, pero requiere menos cálculos.
La discretización se logra típicamente muestreando el núcleo del filtro gaussiano en puntos discretos, normalmente en posiciones correspondientes a los puntos medios 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 muy pocas muestras conduce a un gran error. En estos casos, la precisión se mantiene (con un pequeño costo computacional) mediante la integración de la función gaussiana sobre el área de cada píxel. [5]
Al convertir los valores continuos de la gaussiana en los valores discretos necesarios para un kernel, la suma de los valores será distinta de 1. Esto provocará un oscurecimiento o un aumento de brillo de la imagen. Para solucionar esto, los valores se pueden normalizar dividiendo cada término del kernel por la suma de todos los términos del kernel.
Un enfoque mucho mejor y teóricamente más fundamentado es realizar el suavizado con el análogo discreto del núcleo gaussiano , [6] que posee propiedades similares sobre un dominio discreto como las que hacen que el núcleo gaussiano continuo sea especial sobre un dominio continuo, por ejemplo, el núcleo correspondiente a la solución de una ecuación de difusión que describe un proceso de suavizado espacial, obedeciendo a una propiedad de semigrupo sobre las adiciones de la varianza del núcleo, o describiendo el efecto del movimiento browniano sobre un dominio espacial, y con la suma de sus valores siendo exactamente igual a 1. Para una descripción más detallada sobre el análogo discreto del núcleo gaussiano, consulte el artículo sobre la implementación del espacio de escala y. [6]
La eficiencia del FIR se ve afectada por valores sigma altos. Existen alternativas al filtro FIR, entre ellas, los desenfoques de múltiples cuadros muy rápidos, el detector de bordes Deriche IIR rápido y preciso , un "desenfoque de pila" basado en el desenfoque de cuadro, y más. [7]
Para procesar señales temporales o vídeos pregrabados, el núcleo gaussiano también se puede utilizar para suavizar el dominio temporal, ya que los datos están pregrabados y disponibles en todas las direcciones. Sin embargo, al procesar señales temporales o vídeos en situaciones de tiempo real, el núcleo gaussiano no se puede utilizar para suavizar el dominio temporal, ya que accedería a datos del futuro, que obviamente no están disponibles. Para suavizar el dominio temporal en situaciones de tiempo real, se puede utilizar en cambio el núcleo temporal denominado núcleo límite causal temporal [8], que posee propiedades similares en una situación causal temporal (no creación de nuevas estructuras hacia una escala creciente y covarianza de escala temporal) a las que obedece el núcleo gaussiano en el caso no causal. El núcleo límite causal temporal corresponde a una convolución con un número infinito de núcleos exponenciales truncados acoplados en cascada, con constantes de tiempo elegidas específicamente. Para datos discretos, este núcleo a menudo se puede aproximar numéricamente bien mediante un pequeño conjunto de filtros recursivos de primer orden acoplados en cascada; consulte [8] para obtener más detalles.
El suavizado gaussiano se utiliza habitualmente con la detección de bordes . La mayoría de los algoritmos de detección de bordes son sensibles al ruido; el filtro laplaciano 2-D, creado a partir de una 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 siguiente algoritmo de detección de bordes. Este enfoque se conoce comúnmente como filtrado laplaciano de gaussiano o filtrado LoG. [9]
Las cámaras digitales de gama baja , incluidas muchas cámaras de teléfonos móviles , suelen utilizar el desenfoque gaussiano [ cita requerida ] para ocultar el ruido de la imagen causado por sensibilidades de luz ISO más altas .
El desenfoque gaussiano se aplica automáticamente como parte del posprocesamiento de la imagen por parte del software de la cámara, lo que genera una pérdida irreversible de detalles. [10] [ se necesita una mejor fuente ]
{{cite web}}
: CS1 maint: multiple names: authors list (link)Bei Fotos, die in der Nacht entstanden sind, dominiert Pixelmatsch.