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
Uh oh!
There was an error while loading. Please reload this page.
-
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