Replies: 1 comment
-
Transforms are computed by combining all transformations available. Order of multiplication and which matrices need to be inverted are all determined based on the name of the transforms. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I have a MHA file with acquired tracking data from my NDI Polaris Vega ST, which looks like this:
Seq_Frame0000_GeometryToTrackerTransform = 0.2876875427414845 -0.008282030442976917 -0.9576885118466799 -203.8241211509758 0.133870488108833 0.9904933384756011 0.03164867847100675 -177.929942667512 0.9483219760001712 -0.1373111590774762 0.2860613141057887 -1969.955174955721 0 0 0 1
Seq_Frame0000_GeometryToTrackerTransformStatus = OK
and
Seq_Frame0000_ReferenceToTrackerTransform = 0.2030637684280021 0.007305363083555705 -0.9791382627709102 123.0811056417531 0.1421184914128252 0.9891633361706014 0.03685415545618541 -159.6579438177653 0.9687969035615057 -0.1466373964787406 0.1998250074529591 -1756.31415378362 0 0 0 1
Seq_Frame0000_ReferenceToTrackerTransformStatus = OK
.
With the EditSequencefile I can give the MHA file and the corresponding config file as input and it calculates the relative transformation (GeometryToReference):
Seq_Frame0000_GeometryToReferenceTransform = 0.9961757823018981 0.006059012967918664 0.08716133957814021 -275.9541559682148 -0.004538024997377321 0.9998341427764263 -0.01763783625197851 10.86561040938258 -0.08725375111893169 0.01717484498861695 0.9960380553047623 276.7211981184864 0 0 0 1
Seq_Frame0000_GeometryToReferenceTransformStatus = OK
However, if I load these transformations into Matlab and call them A (GeometryToTracker), B (ReferenceToTracker) and C (GeometryToReference) I cannot seem to recreate this C matrix by dividing A and B?
So normally relative transformations would state that C = A / B. But when I do this in matlab it results in:
1.0e+03 *
Columns 1 through 6
-0.000087284602578 -0.000130232570322 -0.000987633978648 0 0.000138537116760 0.000980197170714
Columns 7 through 12
-0.000141495490399 0 0.000986503352976 -0.000149174341462 -0.000067514075693 0
Columns 13 through 16
1.561647317030667 -0.267401516401143 -1.989562898669963 0.001000000000000
which is not equal to C. Other way around: B/A does also not result in C.
Are there any additional steps that are done which I am forgetting? How does the relative transformation get calculated?
Sweep17 - Copy.txt
Sweep17_config - Copy.txt
Beta Was this translation helpful? Give feedback.
All reactions