Imagens de radar de abertura sintética (SAR) usadas em monitoramento ambiental e militar sofrem de um tipo específico de ruído chamado speckle, que possui características similares ao ruído sal e pimenta. O filtro da mediana é o método padrão de remoção desse ruído porque preserva as bordas das estruturas enquanto elimina os pontos espúrios.
Mediana: O elemento central da sequência ordenada (índice 4 de 0 a 8).
Sem clipping: A mediana de valores em \([0, 255]\) permanece em \([0, 255]\).
Não linear: O filtro mediana não pode ser expresso como convolução linear.
3.12.9.3 🧠 Fundamentação Teórica
Ruído
Filtro de Média
Filtro de Mediana
Sal e pimenta (0 ou 255)
Espalha o ruído
Remove sem distorcer bordas
Gaussiano
Reduz eficazmente
Reduz parcialmente
3.12.9.4 📦 Especificação de Entrada e Saída (VPL)
Entrada:
Linha 1: Inteiro \(L\).
Linha 2: Inteiro \(C\).
Linhas seguintes: Elementos da matriz.
Saída:
Matriz filtrada \(L \times C\).
3.12.9.5 📌 Exemplos
Entrada
Saída
Observação
3
3
100 100 100
100 0 100
100 100 100
100 100 100
100 100 100
100 100 100
Ponto preto eliminado: mediana de 8×100+1×0 = 100
3
3
50 50 50
50 255 50
50 50 50
50 50 50
50 50 50
50 50 50
Ponto branco (sal) eliminado
📉 Simulador EP03_09: Filtro da Mediana 3×3g = Mediana(Vizinhos)
Injete ruído impulsivo (sal e pimenta) e passe o mouse sobre os pixels internos do resultado para inspecionar a ordenação do vetor de vizinhança e a eliminação do ruído.
Ruído sal (255) e pimenta (0) — ~30% dos pixels internos afetados
Imagem f — Com RuídoSal (255) e pimenta (0) visíveis
Resultado g — Sem RuídoPasse o mouse para inspecionar
Vetor de Vizinhança 3×3 — OrdenadoPasse o mouse num píxel interno do resultado para visualizar
—
Legenda:
Janela 3×3
Pixel Central
Borda (Copiada)
Mediana
Ruído (Eliminado)
Passe o mouse sobre um píxel interno do resultado para ver o processo de ordenação.
Figura 3.34: Simulador EP03_09: Filtro da Mediana 3×3
%%writefile EP03_09.cpp// sua solução
Overwriting EP03_09.cpp
TestSuite("EP03_09.cpp").run()
✔️ EP03_09.cases já existe em casos/
📋 5 caso(s) carregado(s) de casos/EP03_09.cases
🔍 Testando C++: EP03_09.cpp
⚠️ EP03_09.cpp: Arquivo sem conteúdo (menos de 3 linhas). Testes ignorados.