Eu tenho uma imagem que é composta de vários 'ângulos' que formam uma forma de grade:
Depois de algumas pesquisas, Hough parecia um bom ajuste, porque não é incomodado por quebras nas linhas. No entanto, o problema que tenho é que minhas linhas são 'gordas' e qualquer detecção de borda que eu execute (Canny neste caso) escolhe as bordas da linha e não o meio:
Isso significa que a transformação Hough acaba escolhendo um (ou ambos) dos 'lados' das minhas linhas de grade, e não o meio.
Dado que eu sei o que estou procurando (essa forma de grade, sempre na mesma orientação), existe uma maneira melhor de executar a parte de 'detecção de arestas' para me fornecer as linhas centrais ou devo procurar em um método totalmente diferente?
image-processing
hough-transform
Benjol
fonte
fonte
Respostas:
A Transformação Hough realmente ajudaria a pegar a Grade nesse caso. Para "afinar" as linhas, convém considerar a operação de Esqueletização
Isso produziria uma imagem como esta:
Devido à maneira como a esqueletização funciona, ela ainda produzirá algumas linhas que parecerão irrelevantes para a grade, mas essas linhas em direção a direções "errôneas" não são muitas (pelo menos na imagem fornecida) para confundir a detecção de linha da Transformação de Hough demais e escolherá claramente os dois conjuntos principais de linhas em direções distintas. (Aqui está como a saída HT se parece:)
Se você estiver usando o MATLAB, poderá consultar esta página de ajuda
fonte
Uma alternativa à Transformação de Hough seria a Transformação de Radon ( 1 , 2 ). Uma descrição aproximada de um algoritmo para detectar uma estrutura semelhante a uma grade pode ser assim:
EDIT :
Aqui está um pequeno trecho do matlab para ilustrar as etapas 1 a 3:
Para responder à sua pergunta com base nos comentários: Parece-me que, a partir da imagem de exemplo que você forneceu, esse método é mais robusto contra pequenos defeitos na grade detectada. Esqueletos raramente produzem linhas retas, o que pode ser uma desvantagem para a Transformação Hough subsequente.
fonte