# Filtro não linear

Filtros não lineares apresentam grandes vantagens em relação aos filtros lineares como remoção de ruído e suavização mais seletiva em relação aos pixels, bordas, linhas e pequenas estruturas nas imagens. O que difere dos filtros lineares é que os valores dos pixels utilizados nesses filtros são combinados com alguma função não linear. Existem diferentes filtros não lineares incluindo filtros morfológicos em escala de cinza e imagens binárias incluindo detecção de quinas. São os mais utilizados para detecção de bordas, realce e suavização na imagem. Os filtros mais comuns da categoria são o mínimo e máximo para eliminar ruídos como sal e pimenta, mediana, moda, mediana ponderada e variância. São filtros mais custosos computacionalmente do que os filtros lineares não significando que são melhores, depende de cada cenário para a aplicação dos filtros.

## Filtros mínimo e máximo.

Os filtros mínimo e máximo dão ênfase nos valores mínimos e máximos dentro da região respectivamente. São definidas como:
$I'(u,v)\leftarrow min\{I(u+i,u+v)|(i,j)\in R\}$
$I'(u,v)\leftarrow max\{I(u+i,u+v)|(i,j)\in R\}$
Em que R, significa a região onde a sub janela (normalmente uma região quadrada de 3x3 pixels).
O operador mínimo ou máximo é executado na região de cada pixel da imagem. A ilustração abaixo demonstra como os pixels são escolhidos a partir dos operadores mínimo e máximo.
As imagens abaixo mostra os filtros mínimo e máximo aplicadas sobre uma imagem corrompida com ruída do tipo sal e pimenta. No filtro mínimo os ruídos brancos (sal) são todos eliminados, já no filtro máximo os ruídos pretos (pimenta) são todos eliminados.
| Ficheiro:LennaNoise.jpgImagem original. | Ficheiro:LennaMin.jpgFiltro mínimo. | Ficheiro:LennaMax.jpgFiltro máximo. |

## Filtro mediana

O filtro mediana é muito utilizado para eliminar ruídos. É definido como:
$I'(u,v)\leftarrow mediana\{I(u+i,u+v)|(i,j)\in R\}$
Em que R, significa a região onde a sub janela (normalmente uma região quadrada de 3x3 pixels).
Para cada pixel da imagem, o operador mediana é executada em uma determinada região. Assim como o filtro mínimo e máximo, a mediana não cria algum valor diferente como resultado, estes apenas trabalham com os valores da janela. A ilustração abaixo demonstra como o operador mediano atua na sub janela, e assim o valor da operação é o resultado do pixel.
Quando a imagem está corrompida com o ruído sal e pimenta, o filtro mediana consegue consegue corrigir. O filtro trabalha muito bem com ruídos porque estes ruídos tendem estar longe da média, assim se tornando um outlier. As imagens abaixo mostra o resultado do filtro mediana de uma região 3x3 sob o ruído de sal e pimenta.
| Ficheiro:LennaNoise.jpgImagem original. | Ficheiro:LennaMedian.jpgFiltro mediana |

## Filtro variância

Computa a variância da região e o resultado é valor do pixel. O filtro destaca a variância do local, podendo ser em escala de cinza e em imagens coloridas. O filtro variância também é utilizado como detector de bordas. É definido como:
$I'(u,v)\leftarrow variancia\{I(u+i,u+v)|(i,j)\in R\}$
Em que R, significa a região onde a sub janela (normalmente uma região quadrada de 3x3 pixels).
A imagem abaixo demonstra a aplicação do filtro variância para a detecção de bordas.
| Ficheiro:LenaGray.jpgImagem original. | Ficheiro:LennaVar.jpgFiltro variância. |