Comparando ponto de cruzamento entre 2 imagens em MATLAB
-
10-07-2019 - |
Pergunta
Eu levei 2 imagens com um ponto de cruz e agora estou tentando comparar estas 2 imagens e descobrir o que é a distância eo ângulo movido. Como posso usar o MATLAB para fazer isso? Muito obrigado!
Solução
Alinhar duas imagens da mesma cena é chamado registro da imagem. Se você tiver acesso ao Imagem Processing Toolbox , você pode encontrar lá um número de funções para ajuda você .
Dê uma olhada nestes demos de registro de imagem .
Outras dicas
Se essas linhas pretas são sempre nas imagens, e eles estão perto perfeitamente reto (sem ser distorcida em curvas), um método melhor seria usar o Hough transformar ou Radon transformar (tipo de maneiras diferentes de pensar em fazer a mesma coisa) para encontrar apenas as duas linhas pretas, e então comparar suas posições.
Você iria inverter as imagens primeiro, então as linhas são brancos (grandes valores) brilhantes, e então não transformar o Hough. A saída para cada imagem será de dois pontos brancos brilhantes, a partir do qual você pode fazer detecção de pico. A coordenada de cada pico diz-lhe o ângulo e deslocamento da linha.
Eu não tenho feito isso no MATLAB, mas eu vejo uma série de exemplos e documentação:
- Demonstração de Transformada de Hough para linhas rectas (você não precisa fazer o passo de detecção de borda) funções
-
hough
,houghlines
ehoughpeaks
Cross-correlação (Wikipedia chama- Fase correlação ) não vai funcionar se as imagens são rodados. No entanto, há um método relacionado com base em coordenadas log-polar que irá funcionar independentemente da rotação, escala, cisalhamento e tradução.
Este método seria melhor se você tem que combinar todas as imagens arbitrárias. Condizer formas conhecidas ou linhas escuras é melhor realizado com outros métodos.