Estou trabalhando com o código encontrado no Rosetta Code para criar uma transformação Hough. Agora eu quero encontrar todas as linhas em uma imagem. Para fazer isso, preciso dos valores ρ e θ de cada um dos picos no espaço Hough. Uma saída de amostra para um pentágono é assim:
Como posso encontrar uma única coordenada [θ, ρ] para cada um dos 'hot spots' visíveis no espaço Hough?
fonte
center of gravity
?Este código no File Exchange o ajudará a encontrar todos os máximos locais. http://www.mathworks.com/matlabcentral/fileexchange/14498-local-maxima-minima
Se você tem algum conhecimento sobre quantas linhas deseja encontrar (neste caso, cinco), basta selecionar os cinco máximos locais com as pontuações mais altas de Hough.
fonte
Você pode localizar os máximos locais para um determinado raio. Por exemplo, você escaneia a imagem Hough, obtendo picos como máximos somente quando eles são máximos em uma janela .3×3
O segundo passo pode ser refinar a posição de pico com precisão de sub-pixel. Isso pode ser feito por encaixe de parábola.
Suponha que o valor na imagem Hough seja onde é a posição 2D. Agora você gostaria de encontrar um vetor de correção que maximize . Isso pode ser escrito usando a expansão Taylor:x p f ( x + p )f(x) x p f(x+p)
O vetor de correção é então
As derivadas podem ser calculadas a partir da imagem de Hough por diferenciação finita .
Observe que é uma matriz Hessian é um vetor de 2 (gradiente horizontal e vertical); portanto, também é um vetor de 2 que especifica uma mudança de sub-pixel para obter posição precisa do maximizador local.f′′(x) 2×2 f′(x) p
A equação acima pode ocasionalmente gerar mudanças de mais de 1 pixel. Nesse caso, a vizinhança do maximizador não possui uma forma parabólica e talvez você não queira fazer a correção ou deve mesmo abandonar o maximizador candidato.
fonte
Existe uma técnica muito boa desenvolvida em meados dos anos 80 por Gerig e Klein. É um procedimento de backmapping que analisa o espaço Hough para identificar o ponto mais provável associado a cada ponto da aresta e depois constrói um segundo espaço Hough, em que o mapeamento dos pontos da aresta para os parâmetros é um para um, em vez de um para muitos. é o primeiro estágio usual. Eu não tenho a referência em mãos, mas olhe no artigo de revisão seminal de Hough, de Illingworth e Kittler (sobre 1987?)
fonte