[Insight-users] use of transform with itk volume

Lydia Ng lng@insightful.com
Mon, 9 Dec 2002 12:15:04 -0800


Hi Jorn,

When you say initial transform belonging to the image=20
volume, I presume you mean=20
Image::PhysicalToIndexTransform and
Image::IndexToPhysicalTransform?

Currently the support of transforms is not consistent
and it is one of the thing we are looking at sorting
out this year.

I believe the problems you are having is two-fold.

[1] ImageToImageFilter is not currently
passing on PhyiscalToIndexTransform and
IndexToPhysicalTransform down the pipeline.

I.e. you lose that information once you pass
the image through say NormalizeImageFilter

However, origin and spacing is passed through
properly.

[2] The interpolator currently does not
support these transform and only origin and spacing.

There is a issue here of supporting the general case
versus speed and so we will have to make some
decision here on how to tradeoff betweent them.

- Lydia

> -----Original Message-----
> From: J. Van Dalen [mailto:j.vandalen@rad.umcn.nl]
> Sent: Friday, December 06, 2002 9:42 AM
> To: insight-users@public.kitware.com
> Subject: Re: [Insight-users] use of transform with itk volume
>=20
>=20
>=20
> Dear itk users,
>=20
> First of all, a piece of advice to everybody who uses, or=20
> wants to use,
> itkMutualInformationImageToImageMetric. It is very interesting first
> to read the paper of Paul Viola and William Wells "Alignment by=20
> Maximization of Mutual Information", Int. J. of Comp. Vis.,=20
> 24(2), 1997,=20
> p. 137-154, on which this itk class is based. It makes things=20
> much more
> comprehensible!
>=20
> However, there is still a major puzzle in my mutual=20
> information program.
> I would like to take into account the initial transformation (possibly
> containing translation, scaling and rotation) belonging to the image=20
> volume. Schematically, I do the following when I want to fuse=20
> image A onto B:=20
> A'=3DI*A and B'=3DJ*B, where I and J are the initial=20
> transformations belonging
> to the two images. To map A' onto B' I use a "guess" transformation T.
> I.e., my real guess to map A onto B is: O =3D J^-1 * T * I=20
> However, this procedure fails (the error is often: "All the=20
> sampled point=20
> mapped to outside of the moving image").
>=20
> To my opinion:
> If I only have scaling and translation in my initial transformations I
> and J, I might as well make use of SetOrigin and SetSpacing. In fact,=20
> when I do so, I get good results!=20
>=20
> Does anybody has an idea why my method doesn't work properly?=20
> Can the filters NormalizeImageFilter and ShrinkImageFilter,=20
> that I use,=20
> have any effect?
>=20
> Hope someone can help me out here,
> Regards,
> Jorn.
>=20
> _______________________________________________
> Insight-users mailing list
> Insight-users@public.kitware.com
> http://public.kitware.com/mailman/listinfo/insight-users
>=20
>=20