In transformation, how to find the transfomation matrix that can transform the set of points A to B?

62 Views Asked by At

Suppose I have two set of points A and B:

A is [(0,0,0),(1,1,1),(2,2,2),(3,3,3)]

B is [(4,-5,6),(5,-4,7),(6,-3,8),(7,-2,9)]

Is there a way to find a matrix that can transform A to B?

First I consider A&B are 4X3 matrix, and tried to find X(AX = B), but it failed, so is there any other ways to find the matrix?

Thank you very much.

1

There are 1 best solutions below

0
On

There is no such matrix. The vectors in $A$ lie on a linear subspace. The vectors in $B$ do not. Matrix multiplication maps subspaces to subspaces, so no such matrix exists.

However, three is an affine map that will do this: $$ \vec{b} = \vec{a} + (4,-5,6) \text{,} $$ where $\vec{a}$ is a vector in $A$ and this produces $\vec{b}$, a vector in $B$.

If we were to switch the vectors to homogeneous coordinates, they would become $4$-component vectors and the affine transformation above would have a representation as matrix multiplication.

Finding the affine map, above, was a bit lucky. If either $A$ or $B$ had been presented in a different order, recognizing the map would have been much harder. In general, since sets are not automatically ordered, trying various orderings until recognizing an ordering that can work is an additional step.

For more on the general problem, see point set registration.