PDI+VC · Exercício de Programação

EP03_07 — 🔍 Operador Laplaciano (w4) para Realce de Bordas

3.12.7 EP03_07 🔍 Operador Laplaciano (w4) para Realce de Bordas

Em tomografias de alta resolução, a nitidez das bordas entre tecidos é crítica para diagnóstico. O operador Laplaciano é amplamente utilizado em pipelines de pré-processamento de imagens médicas para realçar automaticamente os contornos anatômicos antes da segmentação, evitando intervenção manual do radiologista.

Ver na Figura 3.32 uma simulação deste EP.

3.12.7.1 📋 Diretrizes de Implementação

  1. Dimensões: Ler os inteiros \(L\) (linhas) e \(C\) (colunas).
  2. Dados: Ler a matriz de pixels \(f\).
  3. Laplaciano (w4): Para cada pixel interno \((i,j)\) com \(1 \le i < L-1\), \(1 \le j < C-1\), calcular:

\[\nabla^2 f(i,j) = f(i-1,j) + f(i+1,j) + f(i,j-1) + f(i,j+1) - 4 \cdot f(i,j)\]

  1. Realce: Calcular a imagem realçada:

\[g(i,j) = \text{clip}(f(i,j) - \nabla^2 f(i,j))\]

  1. Borda: Pixels na borda são copiados diretamente: \(g(i,j) = f(i,j)\).
  2. Saída: Exibir a matriz realçada \(L \times C\).

3.12.7.2 📌 Restrições Computacionais

  • Kernel w4: \(\begin{bmatrix} 0 & 1 & 0 \\ 1 & -4 & 1 \\ 0 & 1 & 0 \end{bmatrix}\) — apenas 4-vizinhos.
  • Saturação: \(\text{clip}(x) = \max(0, \min(255, x))\) aplicado ao resultado do realce.
  • Sem arredondamento: O Laplaciano usa apenas somas/subtrações de inteiros.

3.12.7.3 🧠 Fundamentação Teórica

Região \(\nabla^2 f\) Efeito do Realce
Uniforme \(\approx 0\) Sem alteração
Borda crescente \(< 0\) Pixel clareado
Borda decrescente \(> 0\) Pixel escurecido

3.12.7.4 📦 Especificação de Entrada e Saída (VPL)

Entrada:

  • Linha 1: Inteiro \(L\).
  • Linha 2: Inteiro \(C\).
  • Linhas seguintes: Elementos da matriz original.

Saída:

  • Matriz realçada \(L \times C\).

3.12.7.5 📌 Exemplos

Entrada Saída Observação
3
3
0 0 0
0 100 0
0 0 0
0 0 0
0 255 0
0 0 0
Pico isolado: lap=−400, g=100−(−400)=500 → clip=255
3
3
50 50 50
50 50 50
50 50 50
50 50 50
50 50 50
50 50 50
Região uniforme: Laplaciano=0, sem alteração
📐 Simulador EP03_07: Operador Laplaciano (w4) g = f ∓ ∇²f

Selecione a variante de realce e passe o mouse sobre os pixels internos do resultado para inspecionar a vizinhança de 4 pontos e a equação do Laplaciano.

Variante:
① Imagem Original f Degrau com ruído leve
② Laplaciano ∇²f Bordas detectadas (±128 shift)
③ Resultado g = f − ∇²f Passe o mouse para inspecionar
Kernel w4 (4-Vizinhos)
0
+1
0
+1
−4
+1
0
+1
0
∇²f = T + B + L + R − 4·f
Legenda:
4-Vizinhos do Kernel
Pixel Central
Borda (Copiada)
Passe o mouse sobre um pixel interno do resultado para detalhar a equação.
Figura 3.32: Simulador EP03_07: Operador Laplaciano (w4) para Realce de Bordas
%%writefile EP03_07.py
# Código Python
Writing EP03_07.py
TestSuite("EP03_07.py").run()
✔️ EP03_07.cases já existe em casos/
📋 5 caso(s) carregado(s) de casos/EP03_07.cases

🔍 Testando Python: EP03_07.py
⚠️ EP03_07.py: Arquivo sem conteúdo (menos de 3 linhas). Testes ignorados.