In your result, you compute the residual error as:
err =0;
for i=1:Na
d = (B(:,i) - (s*R*A(:,i) + T));
err = err + norm(d);
end
Wouldn't it be more appropriate to compute the sum of squared errors, because this is what you actually minimize? (so just use norm(d).^2 instead)
A nice addition would be to add the symmetric scale computation as mentioned later in the paper as a third option.
5
05 Feb 2011
Absolute Orientation
Computes the transformation to register two corresponding 3D point sets.
@Dirk-Jan, the method that you've shown is not a constrained least squares estimation. The transformation matrix that it produces is therefore not gauranteed to be of the form
[sR,T;zeros(1,3), 1].
If you add noise to X and Y, you will see that your method does not produce the same results as the absolute orientation solver, nor will it be in the desired family of transformations.
Comment only
23 Jun 2010
Absolute Orientation
Computes the transformation to register two corresponding 3D point sets.
Here is an interesting paper to the topic:
A Comparison of Four Algorithm s for Estimating tD Rigid Transformations
http://www.homepages.inf.ed.ac.uk/rbf/MY_DAI_OLD_FTP/rp765.pdf
Actually the Horn approach (unit quaternions) and the above mentioned (SVD?) are pretty much equivalent
Comment only
19 Jun 2010
Absolute Orientation
Computes the transformation to register two corresponding 3D point sets.
Comment only