DP

VC-9: Detecçao de contornos

DETECÇÃO DE CONTORNOS (VC-9)


🎯 O que é um contorno?

  • Um contorno é uma região da imagem onde ocorre uma variação abrupta da intensidade dos píxeis.

  • É onde há transições rápidas de tons, como nas bordas de objetos.

Detecção de contornos é a tarefa de localizar essas transições para:

  • Delimitar formas

  • Identificar objetos

  • Separar regiões


🔧 Conceitos Matemáticos Envolvidos

📈 Derivadas

  • A detecção de contornos é baseada em derivadas aplicadas sobre a função de intensidade da imagem.

📌 1ª Derivada (Gradiente)
  • Mede a taxa de variação da intensidade entre píxeis vizinhos.

  • Detecta máximos ou mínimos locais.

  • Usada para encontrar bordas com transições suaves.

📌 2ª Derivada (Laplaciano)
  • Mede a mudança da variação (curvatura).

  • Detecta pontos de inflexão ou passagens por zero.

  • Útil para detectar contornos mais definidos, mas mais sensível a ruído.


🧠 Tipos de Transição de Intensidade

  • Degrau: mudança brusca e clara (ex: preto para branco)

  • Rampa: transição gradual (ex: sombra)

  • Telhado: pico pontual (ex: linha fina escura em fundo claro)


🔹 Técnicas Baseadas na 1ª Derivada

Gradiente

  • É um vetor que aponta para a direção de maior variação de intensidade.

  • Calcula-se o gradiente em duas direções: horizontal (x) e vertical (y).

  • Quanto maior o módulo do vetor gradiente, mais provável que o pixel pertença a um contorno.


🛠 Operadores de Detecção de Contorno (1ª Derivada)

🔸 Roberts

  • O mais simples.

  • Usa máscaras diagonais.

  • Indicado para imagens binárias.

  • Marca presença de contorno, sem indicar direção.

🔸 Prewitt

  • Utiliza máscaras para calcular o gradiente nas direções x e y.

  • Suave e menos sensível ao ruído.

  • Boa escolha para imagens de média qualidade.

🔸 Sobel

  • Similar ao Prewitt, mas dá mais peso ao centro da máscara.

  • Mais sensível a mudanças locais de intensidade.

  • Melhor desempenho em imagens com bordas mais suaves.


🔹 Técnicas Baseadas na 2ª Derivada

Laplaciano

  • Calcula a soma das segundas derivadas nas direções x e y.

  • Detecta pontos onde o gradiente muda de direção (máximo ou mínimo).

  • Exige suavização prévia (redução de ruído), pois é sensível a flutuações leves.


🧼 Pré-processamento: Redução de Ruído

Antes de aplicar os detectores de contorno:

  • É comum aplicar filtros de suavização (ex: média, gaussiano)

  • Filtros com kernels maiores reduzem ruído, mas atenuam bordas finas

  • Filtros pequenos mantêm detalhes, mas deixam passar ruído


🧮 Etapas do Processo de Detecção de Contornos

  1. Aplicar o operador em x (máscara de derivada horizontal)

  2. Aplicar o operador em y (máscara de derivada vertical)

  3. Calcular a magnitude do gradiente

  4. Calcular a direção do gradiente

  5. Aplicar limiarização (threshold):

    • Apenas píxeis com magnitude maior que o limiar são considerados contornos


🎯 Escolha do Threshold

  • Threshold baixo: detecta mais contornos (inclui ruído)

  • Threshold alto: detecta só contornos fortes (pode perder detalhes)


📌 Comparativo de Operadores

Operador

Derivada

Direção

Ruído

Indicação

Roberts

Não

Sensível

Simples, rápido

Prewitt

Sim

Robusto

Bordas médias

Sobel

Sim

Menos sensível

Bordas suaves

Laplaciano

Não

Muito sensível

Bordas fortes, com suavização


🧠 Resumo Rápido

  • 1ª derivada detecta mudança rápida de intensidade

  • 2ª derivada detecta inversão de tendência

  • Gradiente é a melhor forma de detectar contornos direcionais

  • Operadores Prewitt e Sobel são os mais usados em imagens reais

  • Suavização (ex: filtro gaussiano) antes da detecção melhora a robustez