Fw: [Insight-users] different spacing

Karthik Krishnan Karthik.Krishnan at kitware.com
Wed Jan 4 13:13:42 EST 2006


Can you check if 
InsightApplications/LandmarkInitializedMutualInformationRegistration 
works for you ?

You can apply an initial misalignment with landmarks and then register 
the two volumes. The registration in the application there allows a 
VersorRigid3DTransform along with the MattesMI metric. Maybe this is all 
you need.

bye
-karthik

Grace Chen wrote:

>Hi Karthik,
>
>Thanx for your help!  However, the spacing for my data is about 1mm. so a
>movement (5, -25, 0) is only about 25 pixels away in y direction, is that
>still too much for the program to handle?  Also, I noticed that registration
>doesn't work well only when I feed the program with data acquiring from
>different modality.  If I simulate the same movement in the same image data,
>the program will correct the movement pretty nicely.
>
>Grace
>
>
>----- Original Message ----- 
>From: "Karthik Krishnan" <Karthik.Krishnan at kitware.com>
>To: "Grace Chen" <Grace.Chen at swri.ca>
>Cc: <insight-users at itk.org>
>Sent: Friday, December 30, 2005 10:39 PM
>Subject: Re: Fw: [Insight-users] different spacing
>
>
>  
>
>>On Fri, 2005-12-30 at 16:45 -0500, Grace Chen wrote:
>>    
>>
>>>Hi there,
>>>
>>>After struggling for so long trying to make the multi-modality version
>>>      
>>>
>of my
>  
>
>>>program to work using ITK, I think it's not working after all.  Is it
>>>because that I am using VersorRigid3DTransform and the
>>>VersorRigid3DTransformOptimizer?
>>>
>>>Grace
>>>
>>>----- Original Message ----- 
>>>From: "Grace Chen" <Grace.Chen at swri.ca>
>>>To: "Luis Ibanez" <luis.ibanez at kitware.com>
>>>Cc: <insight-users at itk.org>
>>>Sent: Wednesday, December 28, 2005 2:36 PM
>>>Subject: Re: [Insight-users] different spacing
>>>
>>>
>>>      
>>>
>>>>Hi Luis,
>>>>
>>>>Sorry, I should have explained a little more.
>>>>
>>>>My program has several levels.  The input images were first stored as
>>>>vtkImageData.  I moved the fixed image using a vtkTransform object.
>>>>        
>>>>
>Then,
>  
>
>>>I
>>>      
>>>
>>>>used a lower level program which converts these vtkImageData to
>>>>        
>>>>
>ImageData
>  
>
>>>in
>>>      
>>>
>>>>ITK and perform registration using ITK.
>>>>
>>>>The ouput of the optimizer seems to improve the image.  I use
>>>>MattesMutualInformationImageToImageMetric. And the ouput of  the first
>>>>        
>>>>
>and
>  
>
>>>>last 10  interations are listed as followed:
>>>>        
>>>>
>>>>[optimizer->GetCurrentIteration() , optimizer->GetValue() ,
>>>>optimizer->GetCurrentPosition()]
>>>>0 -0.180789 [-0.00372431, -0.00216522, -0.00342151,
>>>>        
>>>>
>0.0378279, -0.24234,
>  
>
>>>>0.763643]
>>>>        
>>>>
>>[snip]
>>
>>What I would do is to
>>
>>1. Set the scales for the Versor transform so that it effectively does
>>only translation. Once I am satisfied that it does a decent job of
>>correcting the translations, I would reduce the scales for the rotation
>>too. For instance see the following example
>>
>>    
>>
>http://www.itk.org/cgi-bin/viewcvs.cgi/Examples/Registration/ImageRegistration8.cxx?rev=1.34&root=Insight&view=markup
>  
>
>>The larger the scale, the more it curbs any optimization of that
>>parameter.
>>
>>2. Use only one level for a start and try to get that right. Most of the
>>registration should be done at the first level.
>>
>>[snip]
>>    
>>
>>>>>By looking at the result of the registration, I notice that the
>>>>>          
>>>>>
>>>>translation
>>>>        
>>>>
>>>>>>is ( 1.3884, -3.48145, 2.08022) which is not the movement I
>>>>>>            
>>>>>>
>simulated
>  
>
>>>>i.e.
>>>>        
>>>>
>>>>>>through the call transform->Translate(5, -25, 0).<'transform' is a
>>>>>>vtkTransform.>
>>>>>>            
>>>>>>
>>Registration is usually not meant to correct for large, impractical
>>misalignments. For instance if this were a CT image with a spacing of
>>0.125, I would be surprised if the registration managed to correct for
>>this misagnment (200 pixels here !). Please use reasonable test cases.
>>
>>[snip]
>>    
>>
>>>>Even if the viewer I use is a naive viewer, after I
>>>>apply
>>>>        
>>>>
>>>>>>the registration transform and then I scale the image, both images
>>>>>>            
>>>>>>
>>>(now
>>>      
>>>
>>>>look
>>>>        
>>>>
>>>>>>approximiatly of the same size) should look aligned too, am I
>>>>>>            
>>>>>>
>correct?
>  
>
>>>>But
>>>>        
>>>>
>>>>>>that's not the case for me.
>>>>>>            
>>>>>>
>>For a start, please use
>>InsightApplications/LandmarkInitializedMutualInformationRegistration as
>>a viewer. You can load both images and conveniently view the overlay in
>>3 windows and you will have crosshairs and meta-info to query position
>>information. This is the bare-minimum viewer capability you will need
>>for any kind of registration.
>>
>>Happy new year.
>>-karthik
>>
>>    
>>
>>>>
>>>>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: Wednesday, December 28, 2005 2:11 PM
>>>>Subject: Re: [Insight-users] different spacing
>>>>
>>>>
>>>>        
>>>>
>>>>>Hi Grace,
>>>>>
>>>>>
>>>>>  *  Did your registration converged ?
>>>>>
>>>>>
>>>>>  *  Could you please post the output of the Command/Observer
>>>>>     class that you connected to the optimizer ?
>>>>>
>>>>>
>>>>>  *  Why is that you end up with a vtkTransform
>>>>>     if you are doing registration with ITK ?
>>>>>
>>>>>
>>>>>
>>>>>Please let us know,
>>>>>
>>>>>
>>>>>   Thanks
>>>>>
>>>>>
>>>>>      Luis
>>>>>
>>>>>
>>>>>
>>>>>-----------------
>>>>>Grace Chen wrote:
>>>>>          
>>>>>
>>>>>>Hi Luis,
>>>>>>
>>>>>>Thanx for the reply.  I know the registration should have been
>>>>>>            
>>>>>>
>done in
>  
>
>>>>the
>>>>        
>>>>
>>>>>>physical space.  Even if the viewer I use is a naive viewer, after
>>>>>>            
>>>>>>
>I
>  
>
>>>>apply
>>>>        
>>>>
>>>>>>the registration transform and then I scale the image, both images
>>>>>>            
>>>>>>
>>>(now
>>>      
>>>
>>>>look
>>>>        
>>>>
>>>>>>approximiatly of the same size) should look aligned too, am I
>>>>>>            
>>>>>>
>correct?
>  
>
>>>>But
>>>>        
>>>>
>>>>>>that's not the case for me.
>>>>>>
>>>>>>By looking at the result of the registration, I notice that the
>>>>>>            
>>>>>>
>>>>translation
>>>>        
>>>>
>>>>>>is ( 1.3884, -3.48145, 2.08022) which is not the movement I
>>>>>>            
>>>>>>
>simulated
>  
>
>>>>i.e.
>>>>        
>>>>
>>>>>>through the call transform->Translate(5, -25, 0).<'transform' is a
>>>>>>vtkTransform.>
>>>>>>
>>>>>>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: Wednesday, December 28, 2005 1:32 PM
>>>>>>Subject: Re: [Insight-users] different spacing
>>>>>>
>>>>>>
>>>>>>
>>>>>>            
>>>>>>
>>>>>>>Hi Grace,
>>>>>>>
>>>>>>>Please read with more attention the "Image Registration" Chapter
>>>>>>>of the ITK Software Guide.
>>>>>>>
>>>>>>>
>>>>>>>If the two images are taken from the same patient and the image
>>>>>>>spacings are set correctly by the scanner, you *should not need*
>>>>>>>to do *any scaling* when registering the images.
>>>>>>>
>>>>>>>
>>>>>>>The fact that the images look of different sizes in your screen
>>>>>>>just shows that you are using a poor image viewer.
>>>>>>>
>>>>>>>
>>>>>>>You are probably comparing the images based on their number of
>>>>>>>pixels instead of based on their physical extent in space.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>Please study Figure 8.7 in pdf-page 358.
>>>>>>>
>>>>>>>
>>>>>>>The Transfrom that ITK compute is the one that maps the *physical*
>>>>>>>space of one image into the *physical* space of the other image.
>>>>>>>
>>>>>>>
>>>>>>>In that context, if the patient is the same, you shouldn't need
>>>>>>>any scaling unless the head of the patient if physically shrinking
>>>>>>>or expanding between the time of acquiring both scans. (hopefully
>>>>>>>that doesn't happen in any hospital).
>>>>>>>
>>>>>>>
>>>>>>>The transformations from the discrete image grid and the physical
>>>>>>>space are done using the origin and spacing. (Transform T1 and T2
>>>>>>>in Figure 8.7).
>>>>>>>
>>>>>>>
>>>>>>>The transform that ITK computes for you is the "Space Transform".
>>>>>>>
>>>>>>>Please read Section 8.3, from the ITK Software Guide
>>>>>>>
>>>>>>>
>>>>>>>and also read the Tutorial
>>>>>>>
>>>>>>>http://wiki.na-mic.org/Wiki/images/b/ba/Insight-Registration.ppt
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>   Regards,
>>>>>>>
>>>>>>>
>>>>>>>     Luis
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>------------------
>>>>>>>Grace Chen wrote:
>>>>>>>
>>>>>>>              
>>>>>>>
>>>>>>>>Hi there,
>>>>>>>>
>>>>>>>>I am trying to perform multi-modality registration for two
>>>>>>>>                
>>>>>>>>
>volumes.
>  
>
>>>>The
>>>>        
>>>>
>>>>>>>>two image data have different physical attributes, etc.
>>>>>>>>different origin, spacing and dimension (so, on the screen, one
>>>>>>>>                
>>>>>>>>
>looks
>  
>
>>>>>>>>bigger than the other).  I simulated a movement (e.g. a
>>>>>>>>                
>>>>>>>>
>translation
>  
>
>>>(5,
>>>      
>>>
>>>>>>>>-25, 0) in the fixed image.  However, when the registration
>>>>>>>>                
>>>>>>>>
>program
>  
>
>>>>>>>>returns, the final transform matrix is
>>>>>>>>
>>>>>>>>
>>>>>>>>0.999951     0.00912699   -0.00371374     1.3884
>>>>>>>>
>>>>>>>>-0.0091721   0.999882       -0.0123175       -3.48145
>>>>>>>>
>>>>>>>>0.00360089  0.0123509      0.999917         2.08022
>>>>>>>>
>>>>>>>>0                   0                     0
>>>>>>>>                
>>>>>>>>
>1
>  
>
>>>>>>>>This result is wrong, isn't it?  Does the registration program
>>>>>>>>                
>>>>>>>>
>scale
>  
>
>>>>the
>>>>        
>>>>
>>>>>>>>images before aligning them?  What's going on?
>>>>>>>>
>>>>>>>>Thanx!
>>>>>>>>
>>>>>>>>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
>>>>
>>>>        
>>>>
>>>_______________________________________________
>>>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