[Insight-users] Registration (itk Plugin for volview)
Luis Ibanez
luis.ibanez at kitware.com
Tue Jul 6 21:36:15 EDT 2004
Hi Robert,
A bug on the Jacobian computation of the itkVersorRigid3DTransform
was fixed last week. New versions of the VolView plugins have been
generated after the bug was fixed.
You can download the DLLs of this new plugins from
public.kitware.com
/pub/itk/VolViewPlugins
Please let us know if this new version of the plugins work for
registering your images.
Thanks
Luis
------------------------
Atwood, Robert C wrote:
> Dear Luis:
> First, I am not sure how to determine the version number of a plugin DLL
> downloaded from public.kitware.com. However, I have two versions which I
> will cal the 'Old' and the 'New'.
>
> The Old appears to have the date '11/12/2003', and the New was
> downloaded from public.kitware.com yesterday and appears to have the
> date '040518' on that site (though I am not sure how far to trust
> windows-reported dates ;-)
>
> The shrinking behaviour occurs with the Old but so far not with the New,
> however the initial registration is much better with the Old than it is
> with the New.
>
> I would like to do a routine that registers as well as the Old but does
> not shrink the volume.
>
> The attached screen shots should illustrate. The test volume is
> 100x100x100 (32-bit float) = 4 Mb each volume. I simply rotated without
> interpolation (so, poor quality aliasing) using a quick routine (not
> using ITK resample or any thing) on what I defined as [1,1,1] axis by an
> angle of 0.2 radians (in one test) and the Old registered perfectly and
> reported the rotation as about
>
> [ 0.58, 0.58, -0.58 ] 0.1989 , I guess I chose different orientation for
> the z-axis but that is okay.
>
> To obtain the best example of shrinking, I took the unrotated voluem,
> applied the 'noise-suppresion;erode(vtk)' filter with 3x3x3 , 3 times,
> then tried to register this volume with the original (unrotated) volume.
>
>
> My idea was to simulate what I might see in the experiment, where tissue
> has been built up on, or removed from the implant material (in-vitro)
> between scans.
>
> The void in the upper-right of the xy-image is definitely smaller in
> the green image than in the red image (also the whole volume is smaller)
> (i.e. the diameter at the slice where the green void is maximum is less
> that the diameter fo the red, at the slice where the red is maximum, not
> just the slice illustrated...)
>
> Unless this is actually a problem with the 'append volume' step of the
> process?
>
> Anyways that is the Old version of the plugin. The New version does not
> seem to reproduce this behaviour but unfortunately the first test of
> registering the unrotated and rotated volumes was not nearly as good as
> the old one. Also I notice that increasing the allowed iterations seems
> to worsen the result in this case.
>
> I suspect that properly registering the 'eroded' and 'uneroded' volumes
> should require some extra steps in between (finding a skeleton of the
> shape?)
>
>
> I am still using the 'free' so it does not have the measurement tool. It
> seems hugely obvious in the attatched example though, unless the display
> step is doing something funny.
>
>
>
>
> Robert
>
>
>
>
> Files included:
> new_before.jpg: 'merge volumes' of unrotated and rotated (not
> registered)
> old_30.jpg: Registered using Old, 30 iterations max
> old_300.jpg: Registered usign Old, 300 iterations max
>
> new_30.jpg Registered using New, 30 iterations max
> new_85.jpg Registered using New, 85 iterations max
> new_300.jpg Registered using New, 300 iterations max
>
> before_erode3_self_s72.jpg: 'merge volumes' of unrotated volume and
> unrotated, eroded volume, showing a small void connected to a larger
> void in the lower left and a void in the upper right that is partially
> cropped by the volume limits
>
> old_erode3_self_s67.jpg: Registered the above volumes with 'Old', this
> slice shows the same features which appear to be closer together (moved
> down to slice 67 also) The rotation is
>
> 0.6098 0.7247 0.3208 0.0308
>
> translation 0.01 0.01 0.005
> offset -4.459 -1.083 -4.067
>
> (1 unit per voxel)
>
>
>
>
>
>
>
>
>
> -----Original Message-----
> From: Luis Ibanez [mailto:luis.ibanez at kitware.com]
> Sent: 30 June 2004 01:24
> To: Atwood, Robert C
> Cc: insight-users at itk.org
> Subject: Re: [Insight-users] Registration (itk Plugin for volview)
>
>
>
>
> Hi Robert,
>
>
> What version of InsightApplications are you using ?
>
>
> At some point this Image Registgration VolViewPlugin
> was using the QuaternionRigidTransform. The current
> version is using the VersorRigid3DTransform.
>
> In both cases they were using a customized optimizer
> designed to ensure that no scaling was applied into
> the transform.
>
> I will suggest you to double check your hypothesis of
> scaling taking place, by simply using the linear
> measurement tool that you will find in VolView in
> the menu
>
>
> View--->> Annotations--->> VolumeAnnotations
> ---->> Display distance measurement
>
>
> A line will appear in the 3D window and you will be able
> to move the end points. The length of the line will be displayed on the
> bottom of the Volume window.
>
> Select two anatomical landmarks in your data set before registration.
> Measure their linear separation, and repeat the operation in the
> registered data set. We expect those two distances to be the same *when
> measured in millimeters* (not pixels).
>
> Please let us know if you find any difference in such distances.
>
>
> --
>
> If you implement your own registration application using
> the QuaternionRigidTransform you *MUST* use the
> QuaternionRigidTransformGradientDescentOptimizer:
> http://www.itk.org/Insight/Doxygen/html/classitk_1_1QuaternionRigidTrans
> formGradientDescentOptimizer.html
>
> This is the *ONLY* optimizer that will take care of maintaining the
> Quaternion inside the surface of a unit sphere and therefore prevent any
> scaling effects.
>
> If you use the VersorRigid3DTransform the you *MUST* use the custom
> optimizer:
> http://www.itk.org/Insight/Doxygen/html/classitk_1_1VersorRigid3DTransfo
> rmOptimizer.html
>
> which will compute increments in the space of versors as oppossed to a
> naive gradient descent that will attempt to treat versors as if they
> formed a vector space (which they don't).
>
>
> Please let us know what you find from your measurements,
>
>
> Thanks
>
>
>
> Luis
>
>
> ------------------------
> Atwood, Robert C wrote:
>
>>I have tried the registration (ITK) 'plugin' for Volview, and there is
>>something I don't quite understand ... Since my lack of understanding
>>extends to the underlying ITK algorithm perhaps I can ask on this list
>
>
>>...
>>
>>
>>First, I tried rotating a sample volume (with my own code) and then
>>registering with the original. That worked perfectly.
>>
>>Then, I tried an 'erosion' on one of the images and tried registering
>>again. In this case, of course it was not quite as good, but the
>>puzzle is that it appears that one of the voumes is magnified ,
>>instead of only rotated and translated.
>>
>>Since my aim is to measure the difference in size between the same
>>object imaged before and after some experments, I would rather not
>>use the image size as one of the variable parameters.
>>
>>I read over the ITK: Quaternion Rigid Transform section of
>>Registration in the ITK software guide, the final paragraph of 8.7.9
>>implies that the transformation is renormalized to avoid scaling, and
>>I was under the impression from the dialog box that this is the
>>transform used by the plug in.
>>
>>Is the scaling behaviour in the volview plugin intentional?
>>
>>
>>
>>If I implement a (3-d) registration using ITK will the rigid
>>quaternion transform avoid any changing of scale ? Or, should Versor
>>Rigid 3d transform be used?
>>
>>Robert
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>_______________________________________________
>>Insight-users mailing list
>>Insight-users at itk.org
>>http://www.itk.org/mailman/listinfo/insight-users
>>
>
>
>
>
More information about the Insight-users
mailing list