¿Cuál es la diferencia entre un filtro gaussiano simple y un filtro gaussiano multiplicado por la suma de sus elementos?


7
1 2 1                         1 2 1                    
2 4 2 (A)            (1/16) * 2 4 2  (B)
1 2 1                         1 2 1

Ambas matrices son iguales, excepto que la matriz B se multiplica por la suma de sus elementos. Cuando están enredados con una imagen, dan casi la misma imagen borrosa.

¿Cuál es la diferencia exacta entre ellos y cuándo deben usarse?


44
La respuesta obvia: la diferencia entre las dos salidas es un factor de ya que el filtro es lineal. 116
Jason R

Respuestas:


8

El más a la derecha (donde divide por la suma) asegura que la salida del filtro tendrá el mismo rango dinámico que la entrada.

En realidad, las imágenes borrosas de salida no son las mismas porque sus valores de píxeles son diferentes. Tiene la sensación de que son similares porque su software (supongo que Matlab) reasigna los valores de intensidad de los píxeles a un rango aceptable para las pantallas típicas, es decir, valores de 8 bits entre 0 y 255. Si utilizó un valor más software o biblioteca "cerca del metal", entonces tendría que hacer esta operación usted mismo.

Rango dinámico de datos

El rango dinámico de una imagen viene dado por los valores de intensidad mínima y máxima presentes en la imagen o por la intensidad mínima y máxima que puede representarse mediante el formato digital utilizado para almacenar los valores de intensidad. (Por el contexto, generalmente está claro cuál de las definiciones está en uso).

Los rangos típicos son (con espacio entero) que corresponde a la cuantificación de 8 bits y para valores de coma flotante (precisión simple o doble). La misma convención se usa en Computer Graphics, OpenGL, etc.[2,255][0,1]

Si toma una imagen constante con valor 1 en todas partes:

  • el filtro izquierdo generará una imagen constante con valor 16 en todas partes,
  • el segundo (el más a la derecha) produce una imagen constante del valor 1.

A partir de este simple ejemplo, puede ver que un filtro preservó el enery de la imagen, mientras que el segundo lo aumentó.

Si bien es inofensivo en este caso , puede conducir a numerosos problemas en la práctica . Por ejemplo, los algoritmos iterativos pueden divergir (debido a desbordamientos numéricos ), su computadora puede quedarse sin bits para representar sus datos, o puede perder precisión (los valores de punto flotante de precisión simple y doble no tienen una precisión uniforme en el rango de los posibles valores).


¿Podría por favor explicar el "rango dinámico" que mencionó en su primera línea?
Animesh Pandey

He editado la respuesta. Por favor siéntase libre para solicitar más información.
sansuiso

1

Cuando convoluciona una imagen con un filtro, el resultado depende tanto del filtro como de los valores de píxel de la imagen. Si el filtro no suma uno, entonces tendrá su propia contribución positiva a la convolución. Por ejemplo, si convoluciona una imagen que consta de solo un valor constante, con un filtro que no suma uno, entonces la convolución daría como resultado una imagen con un valor constante más alto. Por lo tanto, este filtro cambiaría el brillo promedio de la imagen, lo que puede no ser deseable.

La diferencia exacta entre ambas imágenes sería un término constante, es decir, la suma del núcleo del filtro, el rango dinámico que es la diferencia entre los valores positivos y negativos, se mantendría exactamente igual.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.