- edited description
Invert Deformations and Displacements
I'm in the process of coding an actual unit test for this, but me and @nikhilsingh have both observed that FixedPointInverse
does not actually invert a deformation, and actually if you give it something extremely close to an inverse it runs the other direction.
For more information, I'm currently implementing (I think), the algorithm from Chen 2008, which is also implemented in ITK
The only difference between Chen's notation (which is exactly implemented by ITK, albeit in a wasteful way) and mine is that they deal in terms of displacements instead of hfields. So where Chen writes $$ v_n(x) = -u(x+v_{n-1}(x)) $$ I implement $$ g_n(x) = g_{n-1}(x) + x - h(g_n(x)) $$ where $g$ is the inverse of the input $h$.
I'm gonna say this is minor because I don't think FixedPointInverse
is actually used by anyone yet.
How would you guys feel about implementing both the displacement and hfield
versions and renaming them as InvertH
and InvertU
?
Comments (6)
-
reporter -
reporter I also don't see any reason not to implement
InvertH
asHToV_I(h); InvertU(h); VToH_I(h);
since converting to/from v/h is pretty quick i'd imagine.
-
Yeah I agree, as few separate implementations as possible is the way to go
-
reporter - changed milestone to v0.01
- changed title to Invert Deformations and Displacements
-
reporter Pushing this to v0.02 since Nikhil and I won't have time til next week or later probably.
-
reporter - changed milestone to v0.02
- Log in to comment