[Insight-users] 3D deformable registration

Luis Ibanez luis.ibanez at kitware.com
Mon, 26 Apr 2004 22:12:38 -0400


Hi Ping,

Your process of Atlas-Based segmentation can easily
be done with small modifications of the Example:

      DeformableRegistration1.cxx
or   DeformableRegistration2.cxx

    You don't need the MaskImageFilter,
    you don't need the AndImageFilter,

You simply need to make sure that you use as Moving
image, the Brain image for which you do have the
segmentation mask.

In the current examples, the input of the WarpImage
filter is the Moving image. You simply have to
replace this input with the Mask that is representing
your segmentation of the Moving image.  The WarpImage
filter will use the deformation field resulting from
the registration process in order to map the Mask
into the fixed image.

In that way you will obtain a deformed Mask that
corresponds to a segmentation of the Fixed Image.

You will find this illustrated in the Slided on
Non-Rigid Registration from the MICCAI 2004 Tutorial

    http://www.itk.org/HTML/Tutorials.htm

more specifically:

http://www.itk.org/CourseWare/Training/NonRigidRegistrationMethods.pdf


You just need to add an extra ImageFileReader to the
example, and connect the output of this reader as
input to the WarpImageFilter.  Then set the filename
of this reader to the filename of the Mask.



Regards,


    Luis


-----------------
ping chen wrote:

> Hi Luis, 
> 
> The problem I want to solve is take out same regions
> of brains with registration. we have reference brain
> images and its region mask, then by MaskImageFilter,
> we can get the region of reference brain, then by
> using the transformation information given by
> deformableRegistration1, we warp the region of the
> reference image, and get the region from the subject
> brain.
> 
> I have used the MaskImageFilter to get the region i
> need. and then i try to use WarpImageFilter to get the
> warped region. 
> 
> 
> I have three questions. 
> 
> 
> through deformableRegistration1, the registration of
> the fixed 3d brain image and moving 3d brain images
> has finished.
> 
> 1. in deformableRegistration1, the transformation
> information is saved by X->WriteDisplacementField,
> right? since we are dealing with 3d dataset, we need
> to uncomment  X->WriteDisplacementField(2); right?
>  
> or can we just use   
> X->WriteDisplacementFieldMultiComponent();  is this
> for save the whole transform information? 
> 
> 2.  how to use the above saved transform information
> in warpimagefilter in 
> warper->SetDeformationField( ???); 
> 
> 3.  warp the region image of the reference image to
> subject image with the available transform
> information, or warp the region mask(binary) of
> reference image and then add MaskImageFilter with the
> whole warped brain will produce the same results? 
> 
> -Emily
> 
> 
> --- Luis Ibanez <luis.ibanez at kitware.com> wrote:
> 
>>Hi Emily,
>>
>>
>>1) You can mask a region of an image by
>>    using the AND image filter.
>> 
>>
> 
> http://www.itk.org/Insight/Doxygen/html/classitk_1_1AndImageFilter.html
> 
>>    This will work ok if both the mask and
>>    the image are of the same pixel type and
>>    are of "integer" type: {char, short, int,
>>    long}.
>>
>>
>>2) You resample the moving image, using the
>>    WarpImageFilter and providing the deformation
>>    field.  Note that the WarpImageFilter requires
>>    you to specify an Origin (in physical space)
>>    and a size (in pixels) for the output image.
>>
>>    What you could do is to take the region from the
>>    moving image and figure out what will be its
>>    bounding box once it is mapped to the coordinate
>>    system of the fixed image.  Once you have such
>>    bounding box, you simply feed this information
>>    into the origin and size provided to the Warp
>>    ImageFilter.
>>
>>    The resulting image will only have the size of
>>    that specified bounding box.
>>
>>
>>
>>
>>Regards,
>>
>>
>>    Luis
>>
>>
>>------------------
>>ping chen wrote:
>>
>>
>>>Hello, 
>>>
>>>I have used DeformableRegistration1.cxx to
>>
>>register 3d
>>
>>>MRI brain images and i got the warped whole brain
>>>image and also the DisplacementField.  
>>>
>>>I have two problems:
>>>1. If I have a mask of one region, how i can use
>>
>>this
>>
>>>mask to take out that only region from the 3d
>>
>>images?
>>
>>>2. I wonder how i can use this transform
>>
>>information
>>
>>>from DeformableRegistration1 to warp this region,
>>>instead of a whole brain?
>>>
>>>Thank you.
>>>emily
>>>
>>>
>>>	
>>
>>
>>_______________________________________________
>>Insight-users mailing list
>>Insight-users at itk.org
>>http://www.itk.org/mailman/listinfo/insight-users
> 
> 
> 
> 	
> 		
> __________________________________
> Do you Yahoo!?
> Win a $20,000 Career Makeover at Yahoo! HotJobs  
> http://hotjobs.sweepstakes.yahoo.com/careermakeover 
>