[Insight-users] Registration

Luis Ibanez luis . ibanez at kitware . com
Thu, 25 Sep 2003 02:29:36 -0400


Hi CSPL

Please us the CenteredTransformInitializer,
http://www . itk . org/Insight/Doxygen/html/classitk_1_1CenteredTransformInitializer . html


It has a ImageMomentCalculator inside   :-)
http://www . itk . org/Insight/Doxygen/html/classitk_1_1ImageMomentsCalculator . html


Just invoke "MomentsOn()" before calling "InitializeTransfrom()".


Regards,


   Luis


-------------------
CSPL wrote:
> Dear Mr.Luis,
> 
> Thank you for your suggestion regarding CenteredAffineTransform..
> In itkSofetwareGuide.pdf it is given that transform can be initialized in
> two ways.One is using TransformInitializar and the other one is
> ImageMomentsCalculator.We undestood that using ImageMomentsCalculator is
> best for MultiModality registration.
> It is also given in PDF that,
> The center of mass of the moving image is passed as the
> rotational center of the transform while the vector between the centers of
> mass of the fixed
> and moving images is passed as the initial translation of the transform.
> 
> But , the problem is ,  GetCenterOfGravity () function in
> ImageMomentsCalculator  is returning itkVector type.
> But,The SetCenter() in transform is not taking return type of
> GetCenterOfGravity()  function .We could not compile the code.
> We have wriiten code as
> transform->SetCenter(MovingCalc. GetCenterOfGravity ());
> where transform is CenteredAffine object and MavingCalc is
> ImageMomentsCalculator object.
> 
> We are getting the following error:
> error C2664: 'SetCenter' : cannot convert parameter 1 from 'class
> itk::Vector<double,3>' to 'const class itk::Point<double,3> .
>  Reason: cannot convert from 'class itk::Vector<double,3>' to 'const class
> itk::Point<double,3>'
>         No constructor could take the source type, or constructor overload
> resolution was ambiguous
> 
> 
> Can you please suggest regarding this problem.
> 
> Thanking you,
> 
> Regards,
> SriValli.
> ----- Original Message -----
> From: "Luis Ibanez" <luis . ibanez at kitware . com>
> To: "CSPL" <affable at hd2 . dot . net . in>
> Cc: "ITKUsers" <insight-users at itk . org>
> Sent: Friday, September 19, 2003 7:52 AM
> Subject: Re: [Insight-users] Registration
> 
> 
> 
>>HI Srivalli,
>>
>>
>>Did you used the CenteredTransformInitializer   ?
>>
>>
> 
> http://www . itk . org/Doxygen/html/classitk_1_1CenteredTransformInitializer . htm
> l
> 
>>As indicated in the SoftwareGuide
>>http://www . itk . org/ItkSoftwareGuide . pdf
>>
>>in the section on Centered Transforms
>>Section 8.5.1, pdf-page 263.
>>
>>
>>
>>
>>Did you verified the pixel spacing of both images ?
>>
>>
>>Did you plot the output of the metric as the
>>                       optimization is progressing ?
>>
>>
>>The information in your message may not be enough to
>>give you any useful advice....
>>
>>
>>Regards,
>>
>>
>>    Luis
>>
>>
>>--------------
>>CSPL wrote:
>>
>>>Hi All,
>>>
>>>We are trying to perform registration.
>>>
>>>Fixed volume is the extracted brain part of the original MR volume.
>>>Moving is the spect volume
>>>
>>>Our requirement is to register extracted brain with spect and then fuse
>>>the registered spect with the original MR so that spect fuses with the
>>>brain and not with other tissues.
>>>
>>>We are using following itk classes for registration and transform
>>
> proces:
> 
>>>1. MultiResolutionImageRegistrationMethod
>>>2.MattesMutualInformationImageToImageMetric
>>>3.LinearInterpolateImageFunction
>>>4.RecursiveMultiResolutionPyramidImageFilter
>>>5.CenteredAffineTransform
>>>6.RegularStepGradientDescentOptimizer
>>>7.ResampleImageFilter
>>>
>>>Input parameters for the above classes are:
>>>no of iterations = 200;
>>>TranslateScale = 1000;
>>>optimizer Scales = 1;
>>>Optimizer maximum step length = 0.1;
>>>Optimizer minimum step length = 0.01;
>>>SpatialSamples = 1000;
>>>Bins = 50;
>>>No of Levels = 3;
>>>SetMinimize = TRUE;
>>>
>>>The fusion output is showing the spect fused with the lower part of the
>>>MR brain and not exactly the brain tissue.
>>>
>>>Can someone help us and let us know our mistake.
>>>
>>>Regards,
>>>Srivalli
>>
>>
>>
>>
>>
> 
>