Como derivar e aplicar a Hough Transform para detecção de linha e círculo

A Transformação de Hough é uma técnica popular no processamento de imagens usada para detectar formas geométricas, como linhas e círculos dentro das imagens. Funciona transformando pontos no espaço da imagem em um espaço de parâmetros, onde as formas podem ser identificadas mais facilmente. Este artigo explica como derivar e aplicar a Transformação de Hough para detecção de linhas e círculos.

Derivação da Transformação de Hough para Linhas

A ideia básica é representar uma linha na imagem como um conjunto de parâmetros. A forma mais comum é a forma normal: ρ = x cos Δ + y sin Δ, onde ρ[ é a distância perpendicular da origem à linha, e

Aplicando a Transformação de Hough para Detecção de Linha

Para detectar linhas, o algoritmo envolve as seguintes etapas:

  • Converta a imagem para um mapa binário de borda usando métodos de detecção de bordas como o Canny.
  • Inicializar um array acumulador para parâmetros (ρ, ω).
  • Para cada ponto de borda, computar todos os pares possíveis (ρ, Δ) e incrementar as células acumuladoras correspondentes.
  • Identificar picos no array acumulador que correspondem às linhas detectadas.

Derivação e Aplicação da Transformação de Hough para Círculos

A detecção do círculo estende a detecção da linha adicionando um parâmetro de raio. Um círculo pode ser representado como (x - a)^2 + (y - b)^2 = r^2, onde (a, b) é o centro e r é o raio. O espaço do parâmetro torna-se tridimensional: (a, b, r). Para cada ponto de borda, os centros de círculo possíveis são calculados para vários raios, e os votos são acumulados neste espaço 3D.

Aplicando a Transformação de Hough para detecção de círculo

As etapas incluem:

  • Realize a detecção de bordas na imagem.
  • Escolha uma gama de raios para procurar círculos.
  • Para cada ponto de borda e cada raio, computar centros de círculo potenciais e atualizar o acumulador.
  • Encontre picos no acumulador 3D que indicam centros de círculo e raios.