[Insight-users] TransformPoint with non-invertible transform

Karthik Krishnan karthik.krishnan at kitware.com
Mon Jun 7 23:50:50 EDT 2010


Yes, you do need the inverse. I can only think of the above approximations.

Thanks
--
karthik

On Tue, Jun 8, 2010 at 2:08 AM, Charlotte Curtis <c.f.curtis at gmail.com>wrote:

> Thanks for the reply Karthik!
>
> On Thu, Jun 3, 2010 at 11:49 PM, Karthik Krishnan
> <karthik.krishnan at kitware.com> wrote:
> >
> > It is the points on the moving image that are transformed onto the fixed
> image. Perhaps its an issue of terminology. Are you sure you need the
> inverse ?
>
> Perhaps it is an issue of terminology... let me make sure I understand it.
>
> From the itk software guide, "the Transform that is optimized in the
> ITK registration framework is the one that maps points from the
> physical space of the fixed image into the physical space of the
> moving image".  The resampler then goes through each pixel of the
> fixed image, following the algorithm of:
>
> 1) finding the image grid (i,j) coordinates of the pixel in the fixed image
> 2) finding the physical space (x,y) coordinates in the fixed image space
> 3) mapping this coordinate to the physical space of the moving image
> (using the Transform that is being optimized)
> 4) finding the image grid coordinates of this location in the moving image
> 5) interpolating the pixel intensity value from the moving image at
> this location
>
> Therefore, if I simply use the TransformPoint method from the
> transform of step 3 on a point originally identified on the moving
> image, it is transformed in the opposite direction (i.e. if the moving
> image shifted down, my point would shift up).
>
> I'm not sure that I *need* the inverse, but I can't think of another
> way to make it work.
>
> > One can get the approximate the EBS inverse by reversing the source and
> target landmarks.
>
> That is a nice simple solution, thanks.
>
> > There isn't a straightforward way to invert the BSpline. Take a look at
> itk::InverseDeformationFieldImageFitler . It samples the grid using a kernel
> transform and approximates the inverse via one of the 5 kernel transforms.
>
> This could work, if I use TransformToDeformationFieldSource followed
> by InverseDeformationFieldImageFilter::GetKernelTransform().  I'm okay
> with approximations, although it seems like there might be an
> easier/more efficient method.
>
> Thanks for your help, I hope this made sense.
>
> Charlotte
>
> > On Tue, Jun 1, 2010 at 9:38 PM, Charlotte Curtis <c.f.curtis at gmail.com>
> wrote:
> >>
> >> Hi all,
> >>
> >> I'm transforming an image using an elasticbodysplinekerneltransform,
> >> followed by a bsplinedeformabletransform.  I've got a set of points
> >> defined on the moving image that I would like to transform as well.
> >> Looking at the code (and the behaviour when I try to GetInverse()), it
> >> seems that the inverse is not implemented (or my transform is not
> >> invertible).
> >>
> >> How can I transform my point set so that it matches the transformed
> >> moving image?  Thanks,
> >>
> >> Charlotte
> >> _____________________________________
> >> Powered by www.kitware.com
> >>
> >> Visit other Kitware open-source projects at
> >> http://www.kitware.com/opensource/opensource.html
> >>
> >> Kitware offers ITK Training Courses, for more information visit:
> >> http://www.kitware.com/products/protraining.html
> >>
> >> Please keep messages on-topic and check the ITK FAQ at:
> >> http://www.itk.org/Wiki/ITK_FAQ
> >>
> >> Follow this link to subscribe/unsubscribe:
> >> http://www.itk.org/mailman/listinfo/insight-users
> >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20100608/0e617c5d/attachment.htm>


More information about the Insight-users mailing list