Operações de processamento de imagem necessárias antes da correspondência do modelo

13

Bem, isso pode mostrar que eu não participei da aula de processamento de imagens.

Eu tenho este modelo para corresponder a um objeto em imagens. Mas o objeto real nas imagens, por exemplo, não se parece com isso, mas a segunda imagem. Quais operações eu preciso executar para que imagens como a segunda estejam prontas para a correspondência de modelos? Para sua informação, a terceira imagem mostra uma correspondência ideal.

Em outra ideia, encaixei o modelo na imagem. Ou seja, dou quatro coordenadas de canto na imagem para coincidir com as do modelo. Em seguida, ele calculará uma maneira de ajustar o modelo à área.

ATUALIZAÇÃO: Problema resolvido. Graças à resposta que selecionei abaixo. Consegui aplicar meu modelo na imagem com sucesso. A última imagem mostra o resultado.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui insira a descrição da imagem aqui

Tae-Sung Shin
fonte
você não vai combinar com essa grade branca, vai? Você quer combinar a grade colorida real em sua segunda imagem, certo?
Endolith 12/04
@ Endolith Eu acho que de qualquer maneira está bem.
Tae-Sung Shin
você pode compartilhar o conceito básico do seu algoritmo? Eu preciso fazer o mesmo para um gráfico.
Gilad

Respostas:

8

A imagem de amostra que você postou tem uma perspectiva relativamente forte (não é gerada diretamente da direção da superfície normal), o que pode causar problemas com as técnicas de correspondência de modelos que usam o processamento de blocos. Suponho que você precise capturar a imagem com forte perspectiva; portanto, a primeira coisa que queremos fazer é estimar a transformação da imagem, que removerá a projeção em perspectiva e resultará na imagem retificada ("imagem direta").

Corrigindo a projeção em perspectiva quando a forma é conhecida

O objetivo final do pré-processamento é encontrar cantos desse retângulo cinza que é o plano de fundo da cartela de cores. Comecei simplesmente limitando com valor constante. A literatura / web tem muitas informações sobre como fazer limiares quando a imagem tem iluminação irregular, mas se você puder, tente corrigir a configuração da imagem de forma que a iluminação seja relativamente uniforme.

Limite com valor constante

Eu assumi que a tabela de cores ocupa uma parte muito grande da tela, portanto é provavelmente a maior região contínua da imagem. Existem muitas funções de rotulagem em preto e branco (MATLABs bwlabel, IPPs LabelMarkers, OpenCV possui biblioteca externa cvblob) que fornecerão a cada região conectada distinta seu próprio índice. Após a identificação, você pode calcular as áreas dos componentes conectados usando um histograma e, em seguida, escolher o componente com a maior área.

Encontre o maior blob

Geralmente, é uma boa idéia preencher os componentes de forma que o componente não tenha furos, isso reduz o número de pixels da aresta.

Preencha o blob

Agora podemos usar operadores de localização de arestas (usei o método baseado em gradiente, mas você também pode rastrear a aresta seguindo os pixels brancos que estão conectados aos pixels pretos) para obter os pixels pertencentes ao pensionista.

Encontrar arestas

Como o objeto que nos interessa é o retângulo, ajustei quatro linhas nos pixels da aresta usando um ajuste de linha robusto (RANSAC). Depois de encontrar uma nova linha, removi todos os pontos próximos à linha encontrada, o que força as operações de ajuste subsequentes a retornar outras arestas do objeto. Finalmente, quando todas as arestas foram encontradas, calculei todas as interseções possíveis entre o conjunto de linhas. Do conjunto de pontos resultantes, removi todos os pontos fora da imagem.

HH

x=HX

Essa matriz de transformação pode ser usada para transformar a imagem original, de modo que a cartela de cores seja gerada diretamente da direção da superfície normal.

Ajustar linhas às bordas

H

Se ainda queremos fazer alguma correspondência de modelos, podemos usar qualquer método decente de correspondência de modelos. O método não precisa ser invariável em rotação / escala, pois a imagem já está retificada.

Perspectiva correta

buq2
fonte
1

Comece com a detecção de borda. Em seguida, use a transformação Hough para detectar linhas retas. Então descubra quais linhas são paralelas e quais devem ser perpendiculares. Em seguida, estime a transformação projetiva para que as linhas que devem ser perpendiculares sejam perpendiculares.

Dima
fonte