¿Elección de los parámetros del kernel gaussiano al filtrar paso bajo antes de volver a muestrear la imagen?

7

Necesito diezmar una señal por un factor de q.

Más específicamente, mi señal es una "imagen" 3D: , que necesito muestra por un factor de dos en la dirección z. I(xi,yj,zk)

Quiero hacer un filtrado de paso bajo antes de la aniquilación convolucionando con un núcleo gaussiano de tamaño n.

Creo mis desviaciones estándar de Gaussian kernels 2 por debajo y por encima de 0, ya que esto representa el 95% de la distribución.

Estoy buscando una regla general que me diga qué tan grande debería ser n.

¿Estoy en lo cierto al pensar que el gaussiano debería filtrar todas las frecuencias por encima de fN / q, donde fN: frecuencia de Nyquist de la señal original?

Sé que el Fourier de un gaussiano con desviación estándar es otro gaussiano con desviación estándar . No estoy seguro de cuán estricto debería ser mi filtro de paso bajo. ¿Debería la frecuencia de corte, fc, estar en 2 o 3 desviaciones estándar? σ σ=1/σ

¿Cuál es entonces la ecuación para la frecuencia de corte, fc, de un núcleo gaussiano con tamaño n: fc (n) =?

A continuación se muestra la respuesta de frecuencia de algunos núcleos gaussianos calculados en Matlab: ingrese la descripción de la imagen aquí

Mi problema real involucra q = 2, y de esta figura veo que n = 5 debería funcionar bien. Hubiera sido bueno hacer una regla general, así que no tuve que hacer esto para cada q que encuentro.

Andy
fuente
2
¿Hay alguna razón en particular por la que estás usando un filtro gaussiano? Hay otros tipos de filtros que dan más libertad para elegir las características de su banda de paso / banda de detención. Probablemente no usaría un filtro gaussiano como filtro antialiasing (es decir, pre-diezmado).
Jason R
1
Realmente no hay un "siguiente paso", pero el método de ventana también es un método de diseño de filtro muy simple que podría satisfacer un poco mejor sus necesidades. Las aproximaciones digitales a las familias de filtros analógicos clásicos como Butterworth, Chebyshev y los filtros elípticos también son una opción. Para un mayor control sobre la respuesta del filtro, puede usar el algoritmo Parks-McClellan , que tiene como objetivo un comportamiento equiripple especifico tanto en la banda de detención como en la banda de paso.
Jason R
2
Diría que parece nuevo en esto para usar 'fdatool' en MATLAB. Si insiste en usar una ventana gaussiana, mire el par de transformadas de Fourier bien establecido para las señales gaussianas (pista: ¡es otro gaussiano!).
Bryan el
1
@Andy: He oído hablar de ese método (Lanczos) que se usa en el procesamiento de imágenes antes (no es mi área de especialización). Solo mis dos centavos, pero creo que encontrará que, en general, muchos enfoques de procesamiento de imágenes se basan menos en pautas estrictas de procesamiento de señales y más en lo que se considera que funciona bien y se ve bien. Específicamente, no creo que sea típico diseñar rigurosamente un filtro antialiasing de pre-diezmado con frecuencias espaciales específicas de banda de paso y banda de detención. En cambio, hay algunos enfoques de remuestreo / desenfoque que se han encontrado como buenas opciones.
Jason R
1
@Andy: puede editar la pregunta para indicar específicamente que está realizando un remuestreo de imágenes. Una mejor manera de expresarlo podría ser preguntar "al aplicar un desenfoque gaussiano antes de reducir la imagen, ¿cuál es una buena manera de elegir los parámetros apropiados para el núcleo gaussiano?"
Jason R

Respuestas:

1

Supongo que lo que quieres hacer es similar al cambio de tamaño de la imagen. Si es así, se pueden usar múltiples funciones incorporadas en MATLAB para este propósito, por ejemplo, imresize .

trampa
fuente