[Neuroimaging] Affine transformations
Stefan Hoffmann
stefan.hoffmann at uni-jena.de
Thu Sep 6 10:17:20 EDT 2018
No worries,
thanks for still caring after all this time.
And thanks for your help in first place!
best regards,
Stefan
Zitat von Matthew Brett <matthew.brett at gmail.com>:
> Oops,
>
> On Fri, Aug 31, 2018 at 2:15 PM, Matthew Brett
> <matthew.brett at gmail.com> wrote:
> [snip]
>> I think you'll find that the center doesn't matter for the zooms
>> because, if Z is a zooming affine, and hence of this form:
>>
>> Z = [[a, 0, 0, 0],
>> [0, b, 0, 0],
>> [0, 0, c, 0],
>> [0, 0, 0, 1]]
>>
>> then Tinv.dot(Z).dot(T) == Z for any translations in T.
>
> How silly of me. For some reason, as I woke up, I realized that's
> obviously not true, and the zooms do change the translations, as would
> have been obvious if I'd done the multiplication properly:
>
> In [22]: import sympy as sy
> In [23]: a, b, c, x, y, z = sy.symbols('a, b, c, x, y, z')
> In [24]: T = Matrix([[1, 0, 0, x],
> ...: [0, 1, 0, y],
> ...: [0, 0, 1, z],
> ...: [0, 0, 0, 1]])
> ...:
> In [25]: Z = Matrix([[a, 0, 0, 0],
> ...: [0, b, 0, 0],
> ...: [0, 0, c, 0],
> ...: [0, 0, 0, 1]])
> ...:
> In [26]: T.inv() * Z * T
> Out[26]:
> Matrix([
> [a, 0, 0, a*x - x],
> [0, b, 0, b*y - y],
> [0, 0, c, c*z - z],
> [0, 0, 0, 1]])
>
> So - yes - it does make a difference (to the origin) whether you zoom
> after a translation, or not.
>
> Sorry about that,
>
> Cheers,
>
> Matthew
> _______________________________________________
> Neuroimaging mailing list
> Neuroimaging at python.org
> https://mail.python.org/mailman/listinfo/neuroimaging
More information about the Neuroimaging
mailing list