[Insight-users] Mean Squares Metric Computation does not match
    Emma Ryan 
    eryanvtk at yahoo.com
       
    Tue Aug 14 14:01:58 EDT 2007
    
    
  
Hi,
   I use versor-based 3D rigid registration and gradient descent -based affine registration algos to register two 3D volumes.
The metric is mean squares and interpolator type is linear.
To perform a cross-check on the final metric received after registration, I -recompute the metric values as follows :
1.  Grayscale images
MetricType::Pointer         metricOrig           = MetricType::New();    
TransformType::Pointer  transformOrig = TransformType::New();    
metricOrig->SetInterpolator(interpolator);
metricOrig->SetTransform(transformOrig);
metricOrig->SetFixedImage(fixedImageOrig);
metricOrig->SetMovingImage(movingImageOrig); 
metricOrig->SetFixedImageRegion(fixedImageOrig->GetBufferedRegion());
MetricType::TransformParametersType finalParam = registration->GetLastTransformParameters();
metricOrig->Initialize();    
std::cout<<"MetricOnOriginalImage = "<<metricOrig->GetValue(finalParam)<<std::endl;
        
For the above code, I get metric values like 50 and 90 (for two different datasets )whereas the bestValue = optimizer->GetValue()  returned by the optimizer (after registration) is 0.70 and 1.70 respectively.
How does one explain this ? Especially when the Mean Square Error is the MEAN and not the total error ?
2. If the volumes sent to the registrator were binary, and the resultant transform is to be applied to binary moving image.
 MetricType::Pointer         metricBin           = MetricType::New();    
 metricBin->SetInterpolator(interpolator);
 metricBin->SetTransform(transformOrig);
 metricBin->SetFixedImage(fixedBinImage);
 metricBin->SetFixedImageRegion(fixedImage->GetBufferedRegion());
 metricBin->SetMovingImage(movingBinImage); 
 metricBin->Initialize();
std::cout<<"MetricOnBinImage = "<<metricBin->GetValue(finalParam)<<std::endl;
Then I get values of metric = 958 and 220 (for two different datasets) when the optimizer returns a value of 32 and 90 respectively. 
So my questions are :
a)  How does one explain a MEAN square error of 958 over a scale of 0-255 ?
b) For the binary images, when I compute the mean square error using other softwares, I get a value of 5. Whereas ITK optimizer returns the final metric value at 32. Both softwares use linear interpolator. I dont think I should get such huge differences even if I were to uses nearest neighbor .
c) In an earlier itk posting,
 http://public.kitware.com/pipermail/insight-users/2005-July/014045.html, Lydia mentions that this would be due to roundoff errors, but it does not explain large differences.
Any clues ?
Emma
       
____________________________________________________________________________________
Sick sense of humor? Visit Yahoo! TV's 
Comedy with an Edge to see what's on, when. 
http://tv.yahoo.com/collections/222
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20070814/d2490663/attachment.html
    
    
More information about the Insight-users
mailing list