Formulação do problema
Considere o problema de encontrar o ângulo de rotação e deslocamento de uma nuvem de pontos. Uma nuvem de pontos significa um conjunto de pontos em um plano que preserva a posição relativa um do outro durante seu movimento espacial.
Essa. Existem dois conjuntos de pontos: a nuvem inicial e a nuvem transformadas arbitrariamente no espaço (veja a Fig. 1). Qualquer transformação de uma nuvem de pontos no espaço pode ser interpretada como rotação e deslocamento. Assim, é necessário determinar em que ângulo é necessário girar a nuvem de pontos original e a que distância ela deve ser movida da nuvem de pontos original para obter a mesma nuvem de pontos convertida de maneira arbitrária.
![](https://habrastorage.org/webt/jm/n_/yk/jmn_ykw43wp-q2q5uhi5mbzls9u.png)
FIG. 1 Exemplo de uma nuvem de pontos na qual é aplicada uma rotação de 15 graus e um deslocamento ao longo do eixo X: 10, ao longo do eixo Y: 30
Algoritmo
1. Determinando o deslocamento da nuvem de pontos
, . . , .
, .
: (0;0) (10;30). , : 10, Y: 30.
2.
(. 2). , . 90 , 4 .
![](https://habrastorage.org/webt/lk/cg/57/lkcg57vpsc3tj8h7etyfxrks-sa.png)
. 2
, . , , .
Eu=(EuxxEuxyEuyxEuyy), :
Euxx=∑n=1 1N[(x-xc)2]Euxy=∑n=1 1N[(x-xc)(y-yc)]Euyx=∑n=1 1N[(x-xc)(y-yc)]Euyy=∑n=1 1N[(y-yc)2].
:
— : (33334 0; 0 11667), : (1; 0) (0; 1), 0 90 .
— : (31882.5 -54167.5; -54167.5 13118.4), (0.9659 -0.2588) (0.2588 0.9659), -15 75 .
, 15, 105, 195 285 . , 15 .
: . Matlab, .
![](https://habrastorage.org/webt/dt/co/l2/dtcol2cxhlyjq-qp-ml0ulxvnzu.png)
. 3
![](https://habrastorage.org/webt/il/dn/0w/ildn0w7pwdeybhdm0imydbixh-e.png)
. 4
![](https://habrastorage.org/webt/ju/if/vv/juifvvunskpmz-ysuno_t3cp0rs.png)
. 5
Usando o método descrito acima, você pode determinar o ângulo de rotação e o deslocamento da nuvem de pontos original, em relação a outro. Que é obtido usando qualquer movimento espacial da nuvem de pontos original. Além disso, na presença de um pequeno erro (distribuição normal), esse método também funciona de forma estável (consulte as Fig. 3 e Fig. 5).
Este método também pode ser usado no processamento de imagens digitais quando for necessário determinar a localização espacial de qualquer objeto.
A idéia principal deste artigo é que o leitor aplique imediatamente o método descrito se ele encontrar uma tarefa semelhante e não gastar tempo com isso.