[Insight-users] register two volumes of different types

Luis Ibanez luis.ibanez at kitware.com
Thu Dec 1 17:41:11 EST 2005



Hi Grace,


   You can have the Observer write the results to a file.

   There is no reason why you couldn't run it this way
   when you invoke the registration from IDL.



   The fact that reversing the image gets your registration
   to work is quite *suspicious*. That shouldn't be the case.
   Registration is supposed to be roughly symmetrical. Meaning
   that although the path of the optimizer doesn't have to be
   the same, it is to be expected that the registration should
   work in both ways.


    >  Does anyone knows what this means?


   Well, it means that the configuration of parameters
   for your registration is still quite fragile and
   probably that the ImageMetric is very very noisy.



   Now that, from the practical point of view...
   it means that you still have to do your Homework:


           Connect an Observer to the Optimizer
           and send the Metric and Transform
           parameters per iteration to a file.




   In the time that we have been exchanging emails, you could
   have done that homework, and by now you would have a real
   answer to your registration problem.



     Regards,


        Luis



------------------
Grace Chen wrote:
> Hi Luis,
> 
> Thanx so much for your help!
> 
> Because the structure of my program is set up in a way that the ITK
> registration bit is at the lowest level (my program is an IDL program
> calling C++ programs that uses ITK registration code).  So, to see those
> registration parameters, I will have to set up another platform to see the
> testing output.  It might takes quite some time, so I will try some other
> possibilities first.
> 
> I just reversed the order of the image so that the moving image is the
> diffusion weighted data and the fixed image is T1 image data (the moviing
> image was the T1 data and the fixed image was the diffusion weighted image
> when the program gave me segmentation fault!!), and it works now!  Does
> anyone knows what this means?
> 
> Grace
> 
> ----- Original Message ----- 
> From: "Luis Ibanez" <luis.ibanez at kitware.com>
> To: "Grace Chen" <Grace.Chen at swri.ca>
> Cc: <insight-users at itk.org>
> Sent: Thursday, December 01, 2005 11:26 AM
> Subject: Re: [Insight-users] register two volumes of different types
> 
> 
> 
>>Hi Grace,
>>
>>
>>Thanks a lot for sharing the screenshots of your images.
>>
>>
>>              They don't look too bad.
>>
>>
>>The registration shouldn't have major problems with these
>>two images.
>>
>>
>>
>>Could you please do the following:
>>
>>
>>   1) Add an observer to your optimizer,
>>
>>   2) Make it print the values of the Metric
>>      and Transform paramters at every iteration.
>>
>>   3) Take the output of the observer and post it
>>      to this list.
>>
>>   4) Add also statements such as
>>
>>        fixedImage->Print( std::cout )
>>        movingImage->Print( std::cout )
>>
>>      just before triggering the registration process,
>>      and post the output to the list too.
>>
>>
>>
>>By looking at the values of the Metric, the Transform
>>parameters, and the metadata of your images we should
>>be able to identify the reason why your registration
>>process is not working.
>>
>>
>>
>>   Regards
>>
>>
>>
>>     Luis
>>
>>
>>
>>
>>-----------------------
>>Grace Chen wrote:
>>
>>>Hi Luis,
>>>
>>>Thanx so much for detailed reply.  With this mail, I've attached a slice
>>>from each of the volumes.
>>>
>>>Thanx.
>>>
>>>Grace
>>>
>>>----- Original Message ----- 
>>>From: "Luis Ibanez" <luis.ibanez at kitware.com>
>>>To: "Grace Chen" <Grace.Chen at swri.ca>
>>>Cc: <insight-users at itk.org>
>>>Sent: Thursday, December 01, 2005 10:45 AM
>>>Subject: Re: [Insight-users] register two volumes of different types
>>>
>>>
>>>
>>>
>>>>Hi Grace,
>>>>
>>>>
>>>>                 Yes,
>>>>
>>>>
>>>>    ITK can register pairs of images
>>>>    that have different number of slices.
>>>>
>>>>
>>>>       or for that matter,
>>>>       different number of pixels
>>>>       along any dimension.
>>>>
>>>>
>>>>
>>>>If your registration program is not working
>>>>as you expected, here are the first things
>>>>that you should try:
>>>>
>>>>
>>>>1) Verify the values of Origin and Pixel
>>>>   Spacing for both images. Make sure that
>>>>   they are realistic values.
>>>>
>>>>2) Use a CenteredTransform Initializer.
>>>>
>>>>3) Connect an Observer to the Optimizer
>>>>
>>>>4) Plot the values of the Metric, at every
>>>>   iteration of the optimizer.
>>>>
>>>>5) Plot the list of Transform parameters
>>>>   at every iteration of the optimizer
>>>>
>>>>
>>>>Details on how to do each one of those steps
>>>>are presented in the ITK Software Guide
>>>>
>>>>  http://www.itk.org/ItkSoftwareGuide.pdf
>>>>
>>>>
>>>>
>>>>If you still have difficulties with your
>>>>registration process, please post your problem
>>>>as an article to the Insight Journal, and make
>>>>sure that you upload your two images, the source
>>>>code that you are using, and the parameters that
>>>>you  are passing to all the components of the
>>>>registration framework.
>>>>
>>>>
>>>>Please let us know if you have any question on
>>>>how to submit a report of negative results.
>>>>This is a forgotten art in the practice of scientific
>>>>research, mostly due to the detrimental influence of
>>>>the decadent publishing system that have provided
>>>>Pavlovian training to our community in order to only
>>>>report successful experiencies.
>>>>
>>>>
>>>>
>>>>
>>>>  Regards,
>>>>
>>>>
>>>>    Luis
>>>>
>>>>
>>>>
>>>>------------------
>>>>Grace Chen wrote:
>>>>
>>>>
>>>>>Hi there,  Good day!
>>>>>
>>>>>I have two 3D image data I want to register.  The movement in the data
>>>>>is 3D rigid.  So, I use VersorRigid3DTransform.  The two volumes are
>>>>>different types of image data (one is T1 image, and the other
>>>>>is diffusion weighted image), so I use
>>>>>MattesMutualInformationImageToImageMetric. I know ITK can register two
>>>>>volumes of different physical dimension.  But doesn't it also register
>>>>>two volumes that have different number of slices?  My program doesn't
>>>>>work for two volumes of different types, am I missing something?
>>>>>
>>>>>Grace
>>>>>
>>>>>
>>
>>>>------------------------------------------------------------------------
>>>>
>>>>>_______________________________________________
>>>>>Insight-users mailing list
>>>>>Insight-users at itk.org
>>>>>http://www.itk.org/mailman/listinfo/insight-users
>>>>
>>>>_______________________________________________
>>>>Insight-users mailing list
>>>>Insight-users at itk.org
>>>>http://www.itk.org/mailman/listinfo/insight-users
>>>>
>>>>
>>>>
>>
>>>------------------------------------------------------------------------
>>>
>>>>
>>>------------------------------------------------------------------------
>>>
>>_______________________________________________
>>Insight-users mailing list
>>Insight-users at itk.org
>>http://www.itk.org/mailman/listinfo/insight-users
>>
> 
> 
> _______________________________________________
> 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