Invert Deformations and Displacements

Issue #16 new
Jacob Hinkle created an issue

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)

  1. Jacob Hinkle reporter

    I also don't see any reason not to implement InvertH as

    HToV_I(h);
    InvertU(h);
    VToH_I(h);
    

    since converting to/from v/h is pretty quick i'd imagine.

  2. Jacob Hinkle reporter

    Pushing this to v0.02 since Nikhil and I won't have time til next week or later probably.

  3. Log in to comment