Formulation du problème
Considérons le problème de la recherche de l'angle de rotation et du déplacement d'un nuage de points. Un nuage de points désigne un ensemble de points sur un plan qui préserve la position relative les uns des autres pendant leur mouvement spatial.
Ceux. Il existe deux ensembles de points: le nuage initial et le nuage transformé arbitrairement dans l'espace (voir Fig. 1). Toute transformation d'un nuage de points dans l'espace peut être interprétée comme une rotation et un déplacement. Ainsi, il est nécessaire de déterminer sous quel angle vous souhaitez faire pivoter le nuage de points d'origine et à quelle distance il doit être déplacé du nuage de points d'origine afin d'obtenir le même nuage de points converti de manière arbitraire.
![](https://habrastorage.org/webt/jm/n_/yk/jmn_ykw43wp-q2q5uhi5mbzls9u.png)
Figure. 1 Exemple d'un nuage de points auquel une rotation de 15 degrés est appliquée et un décalage le long de l'axe X: 10, le long de l'axe Y: 30
Algorithme
1. Déterminer le décalage du nuage de points
, . . , .
, .
: (0;0) (10;30). , : 10, Y: 30.
2.
(. 2). , . 90 , 4 .
![](https://habrastorage.org/webt/lk/cg/57/lkcg57vpsc3tj8h7etyfxrks-sa.png)
. 2
, . , , .
je=(jeXXjeXyjeyXjeyy), :
jeXX=∑n=1N[(X-Xc)2]jeXy=∑n=1N[(X-Xc)(y-yc)]jeyX=∑n=1N[(X-Xc)(y-yc)]jeyy=∑n=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
En utilisant la méthode décrite ci-dessus, vous pouvez déterminer l'angle de rotation et le décalage du nuage de points d'origine, par rapport à un autre. Qui est obtenu en utilisant n'importe quel mouvement spatial du nuage de points d'origine. De plus, en présence d'une petite erreur (distribution normale), cette méthode fonctionne également de manière stable (voir Fig. 3 et Fig. 5).
Cette méthode peut également être utilisée dans le traitement d'images numériques lorsqu'il est nécessaire de déterminer l'emplacement spatial de tout objet.
L'idée principale de cet article est que le lecteur applique immédiatement la méthode décrite s'il rencontre une tâche similaire et n'y passe pas de temps.