[Insight-users] Question for Matte Mutual Information Registration

Ran Tao garfieldtao at gmail.com
Tue Aug 14 19:08:45 EDT 2007


Hi All,

I use affine transform and  Matte mutual information metric to do some registrations. After getting  the metric minimum and the parameters, I try to use the same parameters, same transformation and Matte mutual information metric  to compute the minimum again in a separate main function.
The code as follows.
    typedef itk::MattesMutualInformationImageToImageMetric< double, double > MetricType;
    MetricType::Pointer metric = MetricType::New();
    metric->SetFixedImage ( fixedImage );
    metric->SetFixedImageRegion ( fixedImage->GetBufferedRegion() );
    metric->SetMovingImage ( movingImage );
    metric->SetNumberOfHistogramBins( 24 );
    metric->SetUseAllPixels( true );

    typedef itk::AffineTransform< double, 3>  TransformType;
    TransformType::Pointer transform = TransformType::New();

    metric->SetTransform( transform);
    MetricType::TransformParametersType displacement = transform->GetParameters();
    for(int i = 0; i<12; i++)
        displacement[i] = best_parameters[i]; // best_parameters is from registration
     
    value = metric->GetValue( displacement); 

However, the value is very different from the miminum from the registration. Why is the result different?  Is any special operations in registration? 
Any hints will be appreciated.

Thanks,

Julia
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20070814/dfc955e4/attachment.html


More information about the Insight-users mailing list