From: Analytical dual quaternion algorithm of the weighted three-dimensional coordinate transformation
Input: input 3D coordinates of control points and construct 3D coordinate vector quaternion by Eq. (50), and input the point-wise weight \(\alpha_{i}\) |
Analytical computation: |
Step 1. Compute \(a\), \(b\), \(c\), \({\mathbf{A}}\), \({\mathbf{B}}\), \({\mathbf{C}}\) by Eq. (54) to Eq. (59) |
Step 2. Compute \({\mathbf{G}}\) by Eq. (82), and perform the eigenvalue–eigenvector decomposition of \({\mathbf{G}}\). \(\gamma_{\max }\) is set to the largest eigenvalue, and \({\varvec{r}}\) is set to the eigenvector corresponding to the largest eigenvalue |
Step 3. Compute \(\lambda\) by Eq. (68) |
Step 4. Compute \({\varvec{s}}\) by Eq. (67) |
Step 5. Compute \({\mathbf{R}}\) by Eq. (47); furthermore, if rotation angles \(\theta_{x}\), \(\theta_{y}\), \(\theta_{z}\) are needed, compute them by Eq. (16) |
Step 6. Compute \({\varvec{t}}\) by Eq. (49) and then translation \({\mathbf{t}}\) by Eq. (48) |
Step 7. Compute \({\varvec{e}}_{i}\) by Eq. (51) and then compute \(\sigma\) by Eq. (86). Or compute \(\beta_{{1}}\) by Eq. (85) and then compute \(\sigma\) by Eq. (87) |
Output: output \({\varvec{r}}\), \({\varvec{s}}\), \(\lambda\), \({\varvec{t}}\), \({\mathbf{R}}\), (\(\theta_{x}\), \(\theta_{y}\), \(\theta_{z}\) if needed), \(\sigma\) |