Filtro guiado

Filtro de imagen suavizado que conserva los bordes

Un filtro guiado es un filtro de imagen que suaviza los bordes . Al igual que un filtro bilateral , puede filtrar el ruido o la textura mientras conserva los bordes nítidos. [1] [2]

Comparación

En comparación con el filtro bilateral, el filtro de imagen guiada tiene dos ventajas: los filtros bilaterales tienen una alta complejidad computacional , mientras que el filtro de imagen guiada utiliza cálculos más simples con una complejidad computacional lineal . Los filtros bilaterales a veces incluyen artefactos de inversión de gradiente no deseados y causan distorsión de la imagen. El filtro de imagen guiada se basa en la combinación lineal, lo que hace que la imagen de salida sea consistente con la dirección del gradiente de la imagen de guía, lo que evita la inversión del gradiente.

Definición

Un supuesto clave del filtro guiado es que la relación entre la guía y la salida del filtrado es lineal. Supongamos que es una transformación lineal de en una ventana centrada en el píxel . I {\displaystyle I} q {\displaystyle q} q {\displaystyle q} I {\displaystyle I} ω k {\displaystyle \omega _{k}} k {\displaystyle k}

Para determinar el coeficiente lineal , se requieren restricciones de la entrada de filtrado . La salida se modela como la entrada con los componentes no deseados , como el ruido o las texturas, sustraídos. ( a k , b k ) {\displaystyle (a_{k},b_{k})} p {\displaystyle p} q {\displaystyle q} p {\displaystyle p} n {\displaystyle n}

El modelo básico:

(1)   q i = a k I i + b k , i ω k {\displaystyle q_{i}=a_{k}I_{i}+b_{k},\forall i\in \omega _{k}}

(2)   q i = p i n i {\displaystyle q_{i}=p_{i}-n_{i}}

En el cual:

q i {\displaystyle q_{i}} es el píxel de salida; i t h {\displaystyle i_{th}}
p i {\displaystyle p_{i}} es el píxel de entrada; i t h {\displaystyle i_{th}}
n i {\displaystyle n_{i}} es el píxel de los componentes del ruido; i t h {\displaystyle i_{th}}
I i {\displaystyle I_{i}} es el píxel de la imagen de guía; i t h {\displaystyle i_{th}}
( a k , b k ) {\displaystyle (a_{k},b_{k})} son algunos coeficientes lineales que se supone que son constantes en . ω k {\displaystyle \omega _{k}}

La razón para utilizar una combinación lineal es que el límite de un objeto está relacionado con su gradiente . El modelo lineal local garantiza que tiene una arista solo si tiene una arista, ya que . q {\displaystyle q} I {\displaystyle I} q = a I {\displaystyle \nabla q=a\nabla I}

Reste (1) y (2) para obtener la fórmula (3); al mismo tiempo, defina una función de costo (4):

(3)   n i = p i a k I i b k {\displaystyle n_{i}=p_{i}-a_{k}I_{i}-b_{k}}

(4)   E ( a k , b k ) = i ϵ ω k ( ( a k I i + b k p i ) 2 + ϵ a k 2 ) {\displaystyle E(a_{k},b_{k})=\sum _{i{\epsilon }{\omega }_{k}}^{}((a_{k}I_{i}+b_{k}-p_{i})^{2}+{\epsilon }a_{k}^{2})}

En el cual

ϵ {\displaystyle \epsilon } es un parámetro de regularización que penaliza los valores grandes ; a k {\displaystyle a_{k}}
ω k {\displaystyle \omega _{k}} es una ventana centrada en el píxel . k {\displaystyle k}

Y la solución de la función de costo es:

(5)   a k = 1 | ω | i ϵ ω k I i p i μ k p k ¯ σ k 2 + ϵ {\displaystyle a_{k}={\frac {{\frac {1}{\left|\omega \right|}}\sum _{i\epsilon \omega _{k}}I_{i}p_{i}-\mu _{k}{\bar {p_{k}}}}{\sigma _{k}^{2}+\epsilon }}}

(6)   b k = p k ¯ a k μ k {\displaystyle b_{k}={\bar {p_{k}}}-a_{k}\mu _{k}}

En el cual

μ k {\displaystyle \mu _{k}} y son la media y la varianza de en ; σ k 2 {\displaystyle \sigma _{k}^{2}} I {\displaystyle I} ω k {\displaystyle \omega _{k}}
| ω | {\displaystyle \left|\omega \right|} es el número de píxeles en ; ω k {\displaystyle \omega _{k}}
p ¯ k = 1 | ω | i ϵ ω k p i {\displaystyle {\bar {p}}_{k}={\frac {1}{\left|\omega \right|}}\sum _{i\epsilon \omega _{k}}p_{i}} es la media de en . p {\displaystyle p} ω k {\displaystyle \omega _{k}}

Después de obtener los coeficientes lineales , la salida del filtrado se proporciona mediante el siguiente algoritmo: ( a k , b k ) {\displaystyle (a_{k},b_{k})} q i {\displaystyle q_{i}}

Algoritmo

Por definición, el algoritmo se puede escribir como:

Algoritmo 1. Filtro guiado

Entrada: filtrado de imagen de entrada , imagen de guía , radio de ventana , regularización p {\displaystyle p} I {\displaystyle I} r {\displaystyle r} ϵ {\displaystyle \epsilon }

Salida: filtrado de salida q {\displaystyle q}

1.

    m e a  n  I     {\displaystyle mean_{I}} = = = =     f  m e a n   ( I )   {\displaystyle f_{mean}(I)}     m e a  n  p     {\displaystyle mean_{p}}      f  m e a n   ( p )   {\displaystyle f_{mean}(p)}     c o r  r  I     {\displaystyle corr_{I}}      f  m e a n   ( I .  I )   {\displaystyle f_{mean}(I.*I)}     c o r  r  I p     {\displaystyle corr_{Ip}}      f  m e a n   ( I .  p )   {\displaystyle f_{mean}(I.*p)} 

2.

    v a  r  I     {\displaystyle var_{I}} = =    c o r  r  I    m e a  n  I .    m e a  n  I     {\displaystyle corr_{I}-mean_{I.}*mean_{I}}     c o  v  I p     {\displaystyle cov_{Ip}}     c o r  r  I p    m e a  n  I .    m e a  n  p     {\displaystyle corr_{Ip}-mean_{I.}*mean_{p}} 

3.

    a   {\displaystyle a} = =    c o  v  I p   .  /  ( v a  r  I   + ϵ )   {\displaystyle cov_{Ip}./(var_{I}+\epsilon )}     b   {\displaystyle b}     m e a  n  p    a .  m e a  n  I     {\displaystyle mean_{p}-a.*mean_{I}} 

4.

    m e a  n  a     {\displaystyle mean_{a}} = =     f  m e a n   ( a )   {\displaystyle f_{mean}(a)}     m e a  n  b     {\displaystyle mean_{b}}      f  m e a n   ( b )   {\displaystyle f_{mean}(b)} 

5.

    q   {\displaystyle q} =    m e a  n  a .    I + m e a  n  b     {\displaystyle mean_{a.}*I+mean_{b}} 

f m e a n {\displaystyle f_{mean}} es un filtro medio con una amplia variedad de métodos de tiempo O(N).

Propiedades

Filtrado que preserva los bordes

Cuando la imagen de guía es la misma que la entrada de filtrado , el filtro guiado elimina el ruido en la imagen de entrada y conserva los bordes nítidos. I {\displaystyle I} p {\displaystyle p}

En concreto, se puede especificar un “parche plano” o un “parche de alta varianza” mediante el parámetro del filtro guiado. Los parches con varianza mucho menor que el parámetro se suavizarán, y aquellos con varianzas mucho mayores se conservarán. El papel de la varianza de rango en el filtro bilateral es similar al del filtro guiado. Ambos definen los parches de borde/alta varianza que se deben conservar y los parches de ruido/planos que se deben suavizar”. ϵ {\displaystyle \epsilon } ϵ {\displaystyle \epsilon } ϵ {\displaystyle \epsilon } σ r 2 {\displaystyle \sigma _{r}^{2}} ϵ {\displaystyle \epsilon }

Filtrado que preserva el gradiente

Al utilizar el filtro bilateral para filtrar una imagen, pueden aparecer artefactos en los bordes. Esto se debe al cambio abrupto del valor del píxel en el borde. Estos artefactos son inherentes y difíciles de evitar, porque los bordes aparecen en todo tipo de imágenes.

El filtro guiado funciona mejor para evitar la inversión de gradiente. Además, en algunos casos, se puede garantizar que no se produzca la inversión de gradiente.

Filtrado por transferencia de estructura

Debido al modelo lineal local de , es posible transferir la estructura desde la guía hasta la salida . Esta propiedad permite algunas aplicaciones especiales basadas en filtrado, como el emplumado, el enmarañado y la eliminación de neblina. q = a I + b {\displaystyle q=aI+b} I {\displaystyle I} q {\displaystyle q}

Implementaciones

Véase también

Referencias

  1. ^ He, Kaiming; Sun, Jian; Tang, Xiaoou (2013). "Filtrado guiado de imágenes". Transacciones IEEE sobre análisis de patrones e inteligencia artificial . 35 (6): 1397–1409. doi :10.1109/TPAMI.2012.213.
  2. ^ Filtrado guiado de imágenes
  3. ^ "Filtrado guiado de imágenes - MATLAB imguidedfilter".
  4. ^ "OpenCV: Filtros".
  5. ^ "Documentación de filtros FFmpeg".
Retrieved from "https://en.wikipedia.org/w/index.php?title=Guided_filter&oldid=1231972249"