Apologies for a perhaps very stupid question, but I've begun to confuse myself a little, I think.
If I have two sets of 3D points which are related by a transformation matrix, how many corresponding 3D points would I require to be able to calculate that transformation matrix?
What I'm thinking: The transformation matrix consists of a rotation matrix $\mathbb R^{3x3}$ and a translation matrix $\mathbb R^{3x1}$. That makes 12 unknowns. Wouldn't that then mean I need at least four 3D points to determine the transformation matrix? And any additional points would make it an overdetermined least squares problem that would then increase the accuracy of the transformation.
And a follow up question: To make the transformation simpler I can use homogeneous coordinates and a homogeneous transformation matrix where the bottom row of the transformation matrix would be [0 0 0 1] and the fourth row of the coordinates would be [1] - this enables me to simply multiply the transformation matrix with a point to get the transformed point. I would still only require a minimum of four 3D points to calculate the homogeneous transformation matrix, since I do not have any additional unknowns compared to before, correct?
For rotation you need only four numbers (axis of rotation - 3 numbers and rotation angle 1 number), so total 7 numbers. You can get that from 3 non-collinear points. To get an intuitive feeling about this, consider moving a tetrahedron. If you know how three vertices were moved, you can calculate the fourth one.
What the first part is meant to say is that in a $3\times 3$ rotation matrix, the nine component are not independent. In fact, only four are.